次のクラスは、JPanel
コンテナーを含むウィンドウを作成します。このコンテナには、JPanel
で満たされJTextFields
たJPanel
とが入った が含まれJButton
ています。次のようになります。
JTextField
ボタンをクリックすると、左に別のボタンを追加したいのですが、JPanel
どうすればよいのでしょうか。するべきか:
JPanel
何らかの方法で既存の左を変更しますか?より大きな GridLayout を使用して新しいものを作成し、
JPanel
必要なもの (現在の項目 + 追加JTextField
) を追加してJPanel
から、ウィンドウに追加して、何らかの方法で現在のJPanel
?何か他のことをしますか?
以下は私のコード全体です。必要に応じて、コピーして貼り付けて実行します。どんな助けでも大歓迎です!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PanelUpdateTest {
public static void main(String[] args){
int row = 4;
int col = 6;
JFrame frame = new JFrame(); //the Window
JPanel container = new JPanel(); //A panel that contains all components
JPanel buttonPanel = new JPanel();
JButton button = new JButton("Add Text Field");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("Button \"Add Text Field\" was clicked.");
//here i want code to add another JTextField to the window.
}
});
buttonPanel.add(button);
container.add(createPanel(row, col));
container.add(buttonPanel);
frame.add(container);
frame.pack();
frame.setVisible(true);
}
/**
* This method returns a JPanel filled with JTextFields.
*/
public static JPanel createPanel(int row, int col){
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(row, col));
for(int i = 0; i < row*col; i++){
jp.add(new JTextField(" Text "));
}
return jp;
}
}