Java 将JLabel添加到JFrame

Java 将JLabel添加到JFrame,java,swing,jframe,jlabel,Java,Swing,Jframe,Jlabel,我在向JFrame添加JLabel时遇到问题。我使用了一些教程中描述的JPanel,但是标签不会在框架中弹出;其他swing组件(如JTextField、JButton等)也存在同样的问题。。画直线、矩形等都可以。我希望有人知道,我在这里犯了什么样的错误: package plot1; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.event

我在向JFrame添加JLabel时遇到问题。我使用了一些教程中描述的JPanel,但是标签不会在框架中弹出;其他swing组件(如JTextField、JButton等)也存在同样的问题。。画直线、矩形等都可以。我希望有人知道,我在这里犯了什么样的错误:

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。感谢所有有用的评论

只需添加
setVisible(true)

只需添加
setVisible(true)


我也不能复制它。如sweeper所述,如果屏幕不够大,请将框架大小更改为
setSize(800600)
,将标签位置更改为
lblStanFunc.setBounds(30025030030)
。标签应该在屏幕中央。

我也不能复制它。如sweeper所述,如果屏幕不够大,请将框架大小更改为
setSize(800600)
,将标签位置更改为
lblStanFunc.setBounds(30025030030)
。标签应该在屏幕的中央。

我无法复制。我能很清楚地看到标签。它在画面的右上角。您的屏幕是否不够大,无法显示整个JFrame?1)要更快获得更好的帮助,请发布一个或。2) Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或者与布局填充和边框一起使用。您可能需要调用
pack
,并且根据Swing上的Java教程,您确实需要在事件调度线程上运行GUI。我无法重现这一点。我能很清楚地看到标签。它在画面的右上角。您的屏幕是否不够大,无法显示整个JFrame?1)要更快获得更好的帮助,请发布一个或。2) Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或者与布局填充和边框一起使用。您可能需要一个
pack
调用,并且您确实需要根据Swing上的Java教程在事件调度线程上运行GUI。
import java.awt.BorderLayout;
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.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); 
            setVisible(true);

            JLabel lblStanFunc = new JLabel("Die Funktionssyntax lautet:");
            lblStanFunc.setBounds(800, 40, 300, 30);
            lblStanFunc.setVisible(true);
            add(lblStanFunc);

        }

        public static void main(String[] args) {
            new GUI();
        }
}