私はJavaSwingsを使用してGUIを作成しようとしています。私はJavaSwingsの初心者です。私の主なアイデアは、2つのタブを作成し、タブの1つにボタンを追加することでした。
タブごとに個別のクラスを作成したかったので、3つのクラスを作成しました。そのうちの1つはメインメソッドを持ち、他の2つはタブを表します。
タブの1つで、中央にボタンを追加し、そのボタンにアクションリスナーを追加したいと思いました。
以下は、mainメソッドを持つクラスです。
public class abc {
JFrame frame;
JTabbedPane tabPane;
ImageIcon close;
Dimension size;
int tabCounter = 0;
abc_export exp;
abc_import imp;
public static void main(String[] args) {
abc jtab = new abc();
jtab.start();
}
public void start(){
exp=new abc_export();
imp=new abc_import();
tabPane.addTab(null, exp.panel);
tabPane.addTab(null, imp.panel);
tabPane.setTabComponentAt(tabPane.getTabCount()-1, exp.tab);
tabPane.setTabComponentAt(tabPane.getTabCount()-1, imp.tab);
}
public abc() {
// Create a frame
frame = new JFrame();
// Create the tabbed pane.
tabPane = new JTabbedPane();
// Create a button to add a tab
// Create an image icon to use as a close button
close = new ImageIcon("C:/JAVAJAZZUP/tabClose.gif");
size = new Dimension(close.getIconWidth()+1, close.getIconHeight()+1);
//Adding into frame
frame.add(tabPane, BorderLayout.CENTER);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
};
以下は、タブの1つのコードです。ただし、他のタブにも同じコードがあり、クラス名が異なる他のタブを表しています。
public class abc_import {
ImageIcon close;
Dimension size;
int tabCounter = 0;
JPanel tab;
final JPanel panel;
public abc_import() {
close = new ImageIcon("C:/JAVAJAZZUP/tabClose.gif");
size = new Dimension(close.getIconWidth()+1, close.getIconHeight()+1);
//Adding into frame
JLabel label = null;
panel = new JPanel();
// Create a panel to represent the tab
tab = new JPanel();
tab.setOpaque(false);
String str = "abc_import";
label = new JLabel(str);
tab.add(label, BorderLayout.WEST);
}
};
予想通り、両方のタブが作成されますが、タブの1つにボタンを追加することについては考えられません。
ここでの私の質問は、すでに述べたようにタブの1つにボタンを追加したい場合です。何をする必要がありますか?誰かが私を助けてくれますか?