如何在null布局中设置jpanel的大小

时间:2014-07-23 07:16:08

标签: java swing jpanel layout-manager null-layout-manager

您好我正在尝试在JFrame中设置JPanel的大小,但我无法实现此目的。如何实现我想要的输出?

这是我的代码:

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*;
public class Sample extends JFrame 
{ 
private JPanel panel;
private JLabel label1;
public Sample() 
{ 
    panel = new JPanel(); 
    panel.setBackground(Color.YELLOW); 
    panel.setBounds(100, 100, 100, 100);
    ImageIcon icon1 = new ImageIcon("E:\\image\\ZooDelhi\\1.jpg"); 
    label1 = new JLabel(icon1); 
    label1.setLocation(0,0); 
    panel.add(label1);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().add(panel); 
    this.setSize(500,500); 
    this.setVisible(true); 
  setLayout(null);
} 

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

提前致谢。

3 个答案:

答案 0 :(得分:1)

我认为如果你有布局或者没有问题并不重要。没有布局不会损害改变JPanel的大小。 试着用这个:

myPanel.setPreferredSize(new Dimension(500, 500));

我希望它能帮助;)

答案 1 :(得分:1)

我建议不要重新调整面板大小

如果您只是正确使用布局管理器,它们将负责面板尺寸。为了避免在用户增加窗口大小时让组件在整个屏幕上伸展,让最外面的面板具有左对齐的FlowLayout,并将UI的其余部分作为其单个子项 - 这将为UI提供其首选大小和任何盈余充满了背景色。 检查参考以了解更多信息。

Reference

答案 2 :(得分:-1)

根据Oracle文档:

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

  1. 通过调用将容器的布局管理器设置为null setLayout的(空)。
  2. 调用Component类的setbounds方法 每个容器的孩子。
  3. 调用Component类 重绘方法。
  4. 建议:尝试先调用“setLayout(null)”

    还可以尝试查看上面链接中的示例代码。

    '希望有所帮助!