Java 无法查看Swing程序的输出

Java 无法查看Swing程序的输出,java,swing,layout-manager,Java,Swing,Layout Manager,我使用的是Ubuntu,当运行基本的Swing程序时,输出并不完全可见。输出无法看到标签或按钮等组件。代码为 import javax.swing.*; import java.io.*; public class Swing1 extends JFrame { public static void main(String args[]) { JFrame jr=new JFrame("Hello World!"); JLabel l=new JLabel("Firs

我使用的是Ubuntu,当运行基本的Swing程序时,输出并不完全可见。输出无法看到标签或按钮等组件。代码为

import javax.swing.*;

import java.io.*;

public class Swing1 extends JFrame
{

   public static void main(String args[])
   {

   JFrame jr=new JFrame("Hello World!");

JLabel l=new JLabel("FirstOne");

    JButton b=new JButton("End");
  // l.setBackground(Color.BLACK);

   jr.add(l);

   jr.add(b);

   jr.setVisible(true);

   jr.setSize(800,300);

   jr.setLayout(null); 

    jr.setDefaultCloseOperation(EXIT_ON_CLOSE);     
   }
}

我得到了输出屏幕,但标签没有显示,按钮我的操作系统是ubuntu。

你不应该使用
jr.setLayout(null)
,因为这意味着你必须使用绝对定位

您可以查看Java的可用布局,看看哪种布局适合您

您可以使用一个类似于
jr.setLayout(newflowlayout())
,这样您的标签和按钮将可见

import javax.swing.*;

import java.io.*;

import java.awt.*; //So you can use the Layout Managers

public class Swing1 extends JFrame
{

   public static void main(String args[])
   {

    JFrame jr=new JFrame("Hello World!");

    JLabel l=new JLabel("FirstOne");

    JButton b=new JButton("End");

    jr.add(l);

    jr.add(b);

    jr.setVisible(true);

    jr.setSize(800,300);

    jr.setLayout(new FlowLayout()); 

    jr.setDefaultCloseOperation(EXIT_ON_CLOSE);

   }
}

你的问题不是很清楚。显示一些代码。为了更快地获得更好的帮助,请发布或。您可以在此处添加一些代码。
jr.setLayout(null)这是问题的一部分。移除它(用jr.pack()替换它
),并习惯于使用布局。用jr.pack()替换jr.setLayout(null)是有效的,谢谢。