java - 无法将 JLabel 或 JButton 添加到 JFrame。框架不会显示它
问题描述
我是 Java 新手。我正在尝试添加JLabel
到 aJFrame
但它没有显示。我也尝试过添加JButton
,但它似乎不起作用。在过去的几天里,我尝试了很多东西。
我的代码有什么问题吗?
public class F2 extends JPanel implements ActionListener {
JFrame frame = new JFrame();
JLabel label = new JLabel();
int j = 2;
ArrayList<Person> people = new ArrayList<>();
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
F2 f = new F2();
}
public F2() {
j++;
frame = new JFrame();
frame.setSize(1380, 728);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Timer t = new Timer(20, this);
t.restart();
label.setText("Test");
add(label);
frame.pack();
frame.add(this);
frame.setVisible(true);
for (int i = 0; i < 100; i++) {
people.add(new Person(0));
}
}
public void paint(Graphics g) {
super.paintComponent(g);
Places p1 = new Places(g);
for (Person p : people) {
p.paint(g); //recall that each Person object has a paint method. We're passing g as the argument
}
}
@Override
public void actionPerformed(ActionEvent e) {
repaint();
}
}
解决方案
复制 Alex Rudenko 的回答:
您应该已将标签添加到面板,然后将面板添加到框架中。现在您的空面板替换了标签。
this.add(label)
frame.add(this)
也许让它也可见并使用坐标和大小......或者只是从互联网上复制预制代码......你在主类中使用 jpanel 的方式可能会让你感到困惑。
推荐阅读
- php - 我想用 mysql 数据中的条件检查 html 选项
- java - Json 和数组序列化 - Java Spring Boot
- c# - 更改交叉表单元格背景颜色
- php - 用php制作的登录表单中的索引错误
- python - 两个 Conv 层之间的 Dropout 和 Batchnormalization
- python - 如何使用 http.server python3 打印换行符?
- php - Html 链接到文件夹而不是 ftp 服务器上的文件。但是这个文件夹有html?
- reactjs - React Native Elements 图标未显示在按钮上
- delphi - Delphi 例程模拟打字
- c++ - 为什么我无法在 VS 中从 const char[5] 转换为 char*?