如何为JLabel使用setBounds方法?

时间:2014-01-23 14:55:21

标签: java swing jlabel layout-manager

我正在使用Swing创建一个窗口应用程序。我对setBounds()间距使用JLabel方法,但它不起作用。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class FullScreenJFrame extends JFrame
{
  public FullScreenJFrame( String title )
  {
      super(title);
      //JFrame frame = new JFrame();
      this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

      setUndecorated(true);
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      setBounds(0,0,screenSize.width, screenSize.height);
      getContentPane()
      .add(new JLabel("    HIGHCOURT OF JUDICATURE AT ALLHAHABAD"), BorderLayout.NORTH);
      JLabel label = new JLabel("JJ");
      label.setBounds(20, 20, 150, 20);

      // label.setText(s);
      add(label);
  }

  public static void main( String[] args )
  {
      FullScreenJFrame frame = new FullScreenJFrame("");
      //JFrame frame1 = new JFrame();
      //JLabel label = new JLabel("dd");
      //label.setBounds(370, 340, 150, 20);
      //frame1.add(label);
      frame.setVisible(true);
  }
}

5 个答案:

答案 0 :(得分:3)

一个建议,似乎你将使用所有屏幕显示你的应用程序,所以尽量避免使用像setBoundMethod这样的绝对位置。

您应该将应用程序放在使用其中的其他布局的布局中。检查此链接。

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

答案 1 :(得分:2)

请勿使用setBounds()调整组件的大小。使用Layout Manager,您不必担心手动执行此操作。

答案 2 :(得分:2)

<强>为什么吗

Layout Managers为你做这件事时,为什么要进行绝对定位。

还有一件事,如果您的JFrame不包含任何标题,那么就不需要添加空标题,因为这是不好的做法。

替换

FullScreenJFrame frame = new FullScreenJFrame("");

通过

FullScreenJFrame frame = new FullScreenJFrame();

public FullScreenJFrame( String title )

通过

public FullScreenJFrame()

无需致电

super(title);

答案 3 :(得分:0)

或者,为了将布局设置为null,请右键单击表单并单击“设置布局”,然后单击“null布局”。

答案 4 :(得分:-2)

建议使用null布局吗?正如其他人所建议的那样,答案是

NO

。 请参阅Laying out Components in a Container以使用LayoutManagers进行练习


我还会回答你的问题吗?当然。你知道吗。

  

“我正在使用setBounds()方法获取JLabel间距,但它不起作用。请问,任何人都可以告诉我它为什么不起作用?”

是的,您的界限无效,因为JFrame有默认Borderlayout。要使setBounds起作用,布局必须为null

setLayout(null);

另外,请记住,当执行使用空布局时, setBounds的任何组件都不会出现。< / p>


请参阅Laying out Components in a Container以使用LayoutManagers进行练习