【问题标题】:How to set size of jpanel in null layout如何在空布局中设置 jpanel 的大小
【发布时间】:2014-07-23 07:16:08
【问题描述】:

您好,我正在尝试在 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(); 
} 
} 

提前致谢。

【问题讨论】:

  • 永远不要使用null布局。
  • Swing GUI 可能必须在不同的平台上工作,使用不同的 PLAF,在不同的屏幕尺寸和分辨率上使用不同的字体大小默认设置。因此,它们有助于精确放置组件。而是使用布局管理器,或 combinations of layout managers 以及 layout padding and borders 用于空白。
  • 你想要的输出是什么?分享吧。
  • @Braj 我想在我的特定位置设置 jpanel
  • 像素完美布局是现代 UI 设计中的一种错觉,您无法控制更改空间组件所需的属性,例如 DPI、字体指标、分辨率和其他渲染管道约束。虽然您“可能认为”您不需要布局管理器,但您将花费更多时间尝试在没有它们的情况下解决问题,因为 Swing 的核心设计就是利用它们。您还会遇到框架边框的问题,这些问题在不同平台上是可变的,这将使得窗口的大小难以调整

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


【解决方案1】:

我认为是否有布局并不重要。没有布局不会损害 JPanel 的大小。 尝试使用这个:

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

我希望它会有所帮助;)

【讨论】:

【解决方案2】:

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

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

Reference

【讨论】:

    【解决方案3】:

    根据 Oracle 文档:

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

    1. 通过调用将容器的布局管理器设置为空 设置布局(空)。
    2. 调用 Component 类的 setbounds 方法 每个容器的孩子。
    3. 调用组件类的 重绘方法。

    建议:尝试调用“setLayout(null)”first

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

    '希望有帮助!

    【讨论】:

    • 你能举个小例子吗
    • Oracle 链接给出了一个小例子 - 试试吧!
    猜你喜欢
    • 2014-06-09
    • 1970-01-01
    • 2022-01-18
    • 2012-08-01
    • 2021-01-16
    • 2014-10-03
    • 2012-07-24
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多