私は複雑なTabbedPaneを使ってたくさんの要素を持つプログラムを書いています。クラスの1つでByte-limitに達したので、クラスをInitialisation/Button Listenersと実際のGridBagLayoutに分割することにしました。しかし、今私はそれを動作させるのに問題があります。私のメインクラスは次のようになります:Javaで別のクラスのレイアウトを設定するには?
public class Main{
JFrame mainFrame = new JFrame("");
JTabbedPane tabpane = new JTabbedPane();
JPanel panelTab1 = new Tab1();
JScrollPane scrollTab2 = new JScrollPane(new Tab2());
JScrollPane scrollTab3 = new JScrollPane(new Tab3());
JPanel panelTab4 = new Tab4();
JMenuBar bar = new MenuBar();
public Main(){
tabpane.add("Tab1", panelTab1);
tabpane.add("Tab2", scrollTab2);
tabpane.add("Tab3", scrollTab3);
tabpane.add("Tab4", panelTab4);
mainFrame.getContentPane().add(tabpane);
mainFrame.setSize(1920,1080);
mainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
mainFrame.setVisible(true);
mainFrame.validate();
mainFrame.setJMenuBar(bar);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new Main();
}
});
}}
タブ3は私が分割した2つのクラスです。
public class Tab3 extends JPanel {
JPanel Annex = new JPanel();
//A Bunch of Labels and Buttons
.
.
.
public Tab3(){
//ActionListeners for the Buttons
this.setLayout(new BorderLayout());
this.add(Annex,BorderLayout.WEST);
this.add(Bsp,BorderLayout.EAST);
}}
すべてのGridBagLayoutは以下のクラスである:
public class Tab3Layout extends Tab3{
public Tab3Layout(){
Annex.setLayout(new GridBagLayout());
GridBagConstraints co1 = new GridBagConstraints();
co1.gridx = 0;
co1.gridy = 0;
co1.anchor = GridBagConstraints.FIRST_LINE_START;
co1.weighty = 1.0;
Annex.add(Annex1, co1);
//and so on...
}}
今、私の質問は、私はこの作業を取得んか、でしょうか?今コンパイルすると、Tab3は空です。すべてが1つのクラスに含まれていれば、それは私が望むように正確に動作しますが、コードはあまりにも長すぎます。私はTab3クラスで行が欠けているように私には思えるが、何時間もかかっていて検索しても、これを解決する方法は知られていない。私が試したすべてが、より多くのエラーを生成しました。
@Lotec何があなたの心を変えましたか? – bigby