如何解决Java Swing GUI JLabel 未显示
我正在尝试使用 JLabel 为程序的主菜单编写标题,但它似乎没有出现在我的屏幕上。
import javax.swing.*;
public class GUI {
public GUI() {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
panel.setLayout(new GridLayout());
frame.add(panel,BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Title");
frame.pack();
frame.setSize(854,560);
frame.setVisible(true);
JLabel title = new JLabel();
title.setText("Title");
//title.setSize();
title.setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
}
我做错了什么,如果我设法让它可见,我怎么能改变文本的位置?
而且我还想添加一个按钮以转到下一页,所以如果您也能告诉我如何操作,那就太好了。
解决方法
我会快速且未经测试地说您是在将框架设置为可见后添加标签。 之前做。否则你将不得不重新验证并重新绘制框架
,正如我在您的代码中看到的,您没有在 title
中添加 panel
。作为一种快速解决方案,将 panel.add(title);
放在代码中的 title.setVisible(true);
行之后,它将显示标签。
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
panel.setLayout(new GridLayout());
frame.add(panel,BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Title");
frame.pack();
frame.setSize(854,560);
frame.setVisible(true);
JLabel title = new JLabel();
title.setText("Title");
//title.setSize();
title.setVisible(true);
panel.add(title); //<---- this one line will diaplay label in GUI
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。