我试图在下一行中给出JLabel
,但是当我运行代码时,即使我的输出只显示空行,也没有发生任何事情:
主类:
import javax.swing.JFrame;
public class main {
public static void main(String[] args){
test piyu=new test();
piyu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
piyu.setSize(300,200);
piyu.setVisible(true);
}
}
测试类:
import java.awt.*;
import javax.swing.*;
public class test extends JFrame {
private JLabel item1,item2;
public test() {
super("First Java app");
JPanel panel=new JPanel();
panel.setLayout(new GridLayout());
item1=new JLabel("MY NAME IS XYZ");
item2=new JLabel("YO");
item1.setToolTipText("GAME ON");
panel.add(item1);
panel.add(item2);
}
}
最佳答案
你只是少了一行。您永远不会将 JPanel
添加到 JFrame
。
class test extends JFrame {
private JLabel item1,item2;
public test(){
super("First Java app");
JPanel panel=new JPanel();
panel.setLayout(new GridLayout());
item1=new JLabel("MY NAME IS XYZ");
item2=new JLabel("YO");
item1.setToolTipText("GAME ON");
panel.add(item1);
panel.add(item2);
this.add(panel);
}
}
另请注意,在这种情况下无需扩展 JFrame
。你也可以这样写:
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
public class main {
public static void main(String[] args){
JFrame piyu=new JFrame("First Java app");
JPanel panel=new JPanel();
JLabel item1,item2;
panel.setLayout(new GridLayout());
item1=new JLabel("MY NAME IS XYZ");
item2=new JLabel("YO");
item1.setToolTipText("GAME ON");
panel.add(item1);
panel.add(item2);
piyu.add(panel);
piyu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
piyu.setSize(300,200);
piyu.setVisible(true);
}
}
关于java - JLabel 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23708782/