1

私はJavaでGUIを使用しており、いくつかのJDialogsオープニングを上下に作成しました。を作成しようとしましたJTabbedPaneが、成功しました。ただし、 を で作成する必要がJTabbedPaneありJFrameます。試してみましたが、JPanelすべて空白で開きます。

第二に、同じフレームを前のフレームの後ろに表示するJFrame(新しいものが操作可能になった)とき。JTabbedPane

だから私の質問は:

  • でタブ付きペインを作成するにはどうすればよいJDialogですか?
  • JTabbedPaneを使用する場合、他のすべてのフレームの前に表示するにはどうすればよいですJFrameか?

JFrameこれが私のコードです。これJButtonは、前のJDialog

public class AddComponents extends JDialog {    

    private String[] arr = {"House", "Microgrid", "CSP", "VPP"};

     public AddComponents(JDialog pai, String titulo)
    {
        super(pai, titulo);
        frame = new JFrame(titulo);

        // Display the window.

        frame.setSize(500, 300);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        // set grid layout for the frame

        frame.getContentPane().setLayout(new GridLayout(1, 1));


        tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        pack();

        for (int i = 0; i < arr.length; i++) {
            String tmp = arr[i];
            tabbedPane.addTab(tmp, makePanel(tmp));


        } 

        frame.getContentPane().add(tabbedPane);
        frame.setMinimumSize(new Dimension(getWidth(), getHeight()));
        frame.setLocation(pai.getX() + 85, pai.getY() + 25);
        frame.setEnabled(true);


    }

    private JPanel makePanel(String text) {
        JPanel p = new JPanel();
        //p.setLayout(new GridLayout(0,1));
        JPanel p1 = new JPanel();
        JPanel p2 = new JPanel();


        if(text.equals("House"))
        { //CADA UM DOS ifs chama a class correspondente para criar o interface
          p1.setLayout(new GridLayout(4, 2));

          idLabel = new JLabel("Component ID:");
          idText = new JTextField(""); 
          p1.add(idLabel);
          p1.add(idText);



          maxUsageLabel = new JLabel("Max usage per hour:");
          maxUsageText = new JTextField("");
          p1.add(maxUsageLabel);
          p1.add(maxUsageText);

          minUsageLabel = new JLabel("Min usage per hour:");
          minUsageText = new JTextField("");
          p1.add(minUsageLabel);
          p1.add(minUsageText);

          averageUsageLabel = new JLabel("Average usage per hour:");
          averageUsageText = new JTextField("");
          p1.add(averageUsageLabel);
          p1.add(averageUsageText);

       //   emptyLabel = new JLabel("");
          saveButton = new JButton("Save");
         // p.add(emptyLabel);
          p2.add(saveButton);

          p.add(p1);
          p.add(p2);

        }
        if(text.equals("Microgrid"))
        {
            p.setLayout(new GridLayout(5, 2));
            outroLabel = new JLabel(" Microgrid");
            p.add(outroLabel);


        }
        if(text.equals("VPP"))
        {
            p.setLayout(new GridLayout(5, 2));
            outroLabel = new JLabel(" VPP");
            p.add(outroLabel);
        }
        if(text.equals("CSP"))
        {
            p.setLayout(new GridLayout(5, 2));
            outroLabel = new JLabel(" CSP");
            p.add(outroLabel);
        }

        return p;

    }


}
4

2 に答える 2

1

"How can I create the tabbed pane in a JDialog ?"

  • JFrame に追加した場合と同じです。ここでは基本的に違いはありません。

"How do I make the JTabbedPane appear in front of all other frames, if I use JFrame ?"

  • あなたはそうしない。ウィンドウを他のウィンドウの上に表示する場合は、JDialog を使用します。
于 2013-04-26T18:14:29.037 に答える