我在将JLabel添加到JFrame时遇到问题。我使用了几个教程中描述的JPanel,但Label不会在Frame中弹出;与其他摆动组件如JTextField,JButton等相同的问题。绘制线条,矩形等工作。我希望有人知道,我在这里做什么样的错误:将JLabel添加到JFrame中
package plot1;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class Gui extends JFrame {
private JPanel contentPane;
public Gui(){
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
setSize(1200, 600);
setLayout(null);
setLocationRelativeTo(null);
setTitle("Plot");
addWindowListener(new WindowAdapter(){
public void windowClosed(WindowEvent evnt){
System.exit(0);
}
});
setResizable(false);
JLabel lblStanFunc = new JLabel("Die Funktionssyntax lautet:");
lblStanFunc.setBounds(800, 40, 300, 30);
lblStanFunc.setVisible(true);
add(lblStanFunc);
}
}
主方法是在另一个类:
package plot1;
public class Main {
public static void main(String[] args){
new Gui().setVisible(true);;
}
}
框弹出如预期,但JLabel的缺失。感谢所有有用的评论。
我无法复制此内容。我可以很好地看到标签。它在框架的右上方。您的屏幕不够大,无法显示整个JFrame? – Sweeper
1)为了更快地获得更好的帮助,请发布[MCVE]或[简短,独立,正确的示例](http://www.sscce.org/)。 2)Java GUI必须在不同的语言环境中使用不同的PLAF来处理不同的操作系统,屏幕大小,屏幕分辨率等。因此,它们不利于像素的完美布局。请使用布局管理器或[它们的组合](http://stackoverflow.com/a/5630271/418556)以及[white space]的布局填充和边框(http://stackoverflow.com/a/17874718/ 418556)。 –
您可能需要'pack'调用,并且您需要根据Swing上的Java教程在Event Dispatch Thread上运行GUI。 –