【问题标题】:Adding image to JPanel in GUI在 GUI 中将图像添加到 JPanel
【发布时间】:2015-02-08 09:22:33
【问题描述】:

它说构造函数 JPanel(ImageIcon) 是未定义的。

这是我的部分代码

public Method_1(Test aa) {
this.aa = aa;
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 730, 540);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

//JPanel panel = new JPanel();
BufferedImage myPicture = ImageIO.read(new File("method_1.png"));
JPanel picLabel = new JPanel(new ImageIcon(myPicture));
add(picLabel);
picLabel.setBounds(12, 34, 369, 175);

【问题讨论】:

  • 避免使用null 布局,像素完美的布局是现代用户界面设计中的一种错觉。影响组件单个尺寸的因素太多,您无法控制。 Swing 旨在与核心布局管理器一起工作,丢弃这些将导致无穷无尽的问题和问题,您将花费越来越多的时间来尝试纠正
  • 使用JPanel#addJLabel,将标签添加到面板。见How to Use Labels
  • 错误消息准确地说明了问题所在:JPanel 没有将单个 ImageIcon 作为参数的构造函数。
  • setBounds(100, 100, 730, 540); pack() 更好(在遵循@MadProgrammer 的明智建议并添加组件之后)。
  • @AndrewThompson 这一行JPanel picLabel = new JPanel(new ImageIcon(myPicture));

标签: java image swing jpanel


【解决方案1】:

变化:

JPanel picLabel = new JPanel(new ImageIcon(myPicture));

收件人:

JLabel picLabel = new JLabel(new ImageIcon(myPicture));

【讨论】:

  • 这会在BufferedImage myPicture = ImageIO.read(new File("method_1.png")); 上给出未处理的异常类型 IOException 错误
  • 这是一种不同类型的错误(运行时而不是编译时)。该消息应为您提供有关问题所在的更多信息。如果你不能弄清楚,你需要问另一个问题。
猜你喜欢
  • 1970-01-01
  • 2012-07-12
  • 2015-06-18
  • 2014-05-28
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多