0

こんにちは、for ループを使用して JTabbedPanel を実行しようとしました。プログラムは正常に実行されています。しかし、期待どおりにタブファイルを作成していません。私を助けてください。

public void GenerateGUI() {

    jPanel = new JPanel[3];

    jSplitPane1 = new JSplitPane();
    jTabbedPane1 = new JTabbedPane();

    GroupLayout[] jPanelLayout = new GroupLayout[3];

    for (int i = 0; i <= noOfTerminals; i++) {

        jPanel[i] = new JPanel();

        jPanelLayout[i] = new GroupLayout(jPanel[i]);
        jPanel[i].setLayout(jPanelLayout[i]);

        jPanelLayout[i].setHorizontalGroup(jPanelLayout[i]
                .createParallelGroup(
                        javax.swing.GroupLayout.Alignment.LEADING).addGap(
                        0, 449, Short.MAX_VALUE));
        jPanelLayout[i].setVerticalGroup(jPanelLayout[i]
                .createParallelGroup(
                        javax.swing.GroupLayout.Alignment.LEADING).addGap(
                        0, 250, Short.MAX_VALUE));

        jPanel[i].add(lblOverView);

        jTabbedPane1.addTab("OverView", jPanel[i]);
    }

    setLayout(null);
    add(jTabbedPane1);

    setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    pack();
    setVisible(true);
    setLocationRelativeTo(null);
}
4

2 に答える 2

3

これは、 を使用するために発生しますnull LayoutManager。したがって、その行を削除するsetLayout(null);とすべてが機能するか、その行を非 null 値に変更します。次に例を示します。

setLayout(new BorderLayout());.

null レイアウトは使用しないことをお勧めします。LayoutManagerチュートリアルを調べます。たとえばBorderLayout、またはその他を試してください。

于 2014-01-10T10:47:17.687 に答える
0
    public GenerateGUI() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
    tabbedPane.setBounds(10, 11, 414, 240);
    contentPane.add(tabbedPane);

    JPanel[] panels = new JPanel[3];

    for (int i = 0; i < 3; i++){
        panels[i] = new JPanel();
        panels[i].setVisible(true);
        tabbedPane.addTab("Tab " + Integer.toString(i), null, panels[i], null);
    }
}

クラスを JFrame で拡張します。

于 2014-01-10T11:05:33.803 に答える