私は新しい Java 学習者です。
GUIアプリケーションを作成しています。
このクラスは、ユーザーから番号を取得し、フレームにテーブルを表示します。
クラスを実行するとき、数値を入力して JButton をクリックしますが、フレームの JLabel が表示されません。
なぜそうでないのかはわかりません。
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.*;
//this Frame class use the association
class Frame {
JFrame f;
JButton jb,jbclear;
JTextField jt;
JLabel jl1[]=new JLabel[10];
EventHandler hand=new EventHandler();
//constructor
Frame(){
f=new JFrame("Hello");
f.setSize(500,500);
f.setLayout(null);
JLabel jl=new JLabel("Enter the number");
jl.setBounds(30,10,100,20);
f.getContentPane().add(jl);
jt=new JTextField();
jt.setBounds(170,10,50,20);
f.add(jt);
jb=new JButton("Click");
jb.setBounds(270,50,80,30);
f.add(jb);
jb.addActionListener(hand);
jbclear=new JButton("Clear");
jbclear.setBounds(270,90,80,30);
f.add(jbclear);
jbclear.addActionListener(hand);
f.setVisible(true);
}
class EventHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource()==jb){
int num=Integer.parseInt((jt.getText()));
for(int i=0;i<10;i++){
int n=(num*i);
String s=String.valueOf(num)+" X "+i+" = "+n;
jl1[i]=new JLabel(s);
}
for(int i=0,k=80;i<10;i++){
jl1[i].setBounds(30,k,150,10);
f.add(jl1[i]);
jl1[i].setVisible(true);
k=k+30;
}
}
if(e.getSource()==jbclear){
for(int i=0;i<10;i++){
jl1[i].setText("");
}
}
}
}
public static void main(String [] args){
new Frame();
}
}
JFrame を作成して表示した後にコンポーネントを追加できますか?