0

私はnetbeansを使用しています.netbeansでJFrameフォームを作成し、編集した次のクラスを作成しました:

public class Gui extends javax.swing.JFrame {

    public Gui() {
        initComponents();
        this.setVisible(false);
        this.setLocationRelativeTo(null); // finestra al centro dello schermo
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 804, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 536, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                                        
}

その後、JPanel以前に追加したいクラスを作成しましたGui JFrame

public class Gui_JTabbedPane extends JPanel {

    public Gui_JTabbedPane() {                      
        super(new GridLayout(1, 1));

        JTabbedPane tabbedPane = new JTabbedPane();

        JComponent panel1 = makeTextPanel("Try");

        tabbedPane.addTab("Try", panel1, "Does nothing");
        tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
        add(tabbedPane);
        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    }

   protected JComponent makeTextPanel(String text) {
        JPanel panel = new JPanel(false);
        JLabel filler = new JLabel(text);
        filler.setHorizontalAlignment(JLabel.CENTER);
        panel.setLayout(new GridLayout(1, 1));
        panel.add(filler);
        return panel;
    }
}

したがって、私のメインクラスではこれを行いました:

 Gui_JTabbedPane tabbedpane = new Gui_JTabbedPane();
 Gui gui = new Gui();
 gui.add( tabbedpane );
 gui.setVisible(true);

問題は、 ('GuiJTabbedPane`) を入れJFrameずに (Gui)だけを表示することです。JPanel

代わりに、最初のクラス (Gui) を編集すると、削除initComponents();JFrame表示されませんが、今回は表示されJPanelます。

これら2つのクラスを使用/編集するだけで解決するにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

GUI エディター内に JPanel を追加し、プロパティのカスタム作成コードを次のように設定します。

new Gui_JTabbedPane()

これで作成が完了しinitComponents、最後にpack()が呼び出され、レイアウトが行われます。


コンストラクターでオーバーライド可能な (非最終、非プライベート) メソッドを呼び出すという 1 つの注意点は、予想外の動作をするためmakeTextPanel、不適切なスタイルです。

于 2013-07-16T12:48:40.110 に答える