我是一个新的Java学习者。
我正在创建一个 GUI 应用程序。
此类从用户那里获取一个数字并在 Frame 上显示一个表格。
当我运行我的课程时,我输入一个数字并单击 JButton,但我的 Frame 上的 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 之后添加一个组件吗?