gpt4 book ai didi

java - 添加图像时 JFrame 不起作用

转载 作者:行者123 更新时间:2023-12-02 02:51:05 27 4
gpt4 key购买 nike

我遇到了一个看起来有点奇怪的问题。当我添加一个新的 ImageIcon 并尝试运行该程序时,它只是给我一个灰色的屏幕,并且没有添加任何对象。

public class Ctester {

public Ctester(){
Frame();
}

public void Frame(){

JFrame fr = new JFrame();
fr.setVisible(true);
fr.setSize(500, 500);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fr.setResizable(false);

JPanel p = new JPanel(new GridBagLayout());
ImageIcon icon = new ImageIcon(getClass().getResource("zippo.jpg"));

JLabel l = new JLabel(icon)
JButton bm1 = new JButton("hellu");

p.add(l);
p.add(bm1);
fr.add(p);


}

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

但是如果我删除该行:

    ImageIcon icon = new ImageIcon(getClass.getResource("zippo.jpg"));

然后就完美了。我没有收到任何错误消息,并且我已经寻找了一段时间,但我只能发现问题可能出在 gridbaglayout 上。

我该如何解决这个问题还是必须更改布局?(这只是一个基于原始代码的简单代码作为示例,因此任何不包括更改布局的解决方案都受到高度赞赏)

最佳答案

大部分代码都是错误的:

  1. Swing 组件应在事件调度线程 (EDT) 上创建。

  2. 在将所有组件添加到框架后,框架应该可见。

  3. 您正在尝试使用 GridBagLayout,但在添加组件时未使用任何 GridBagConstraint。

  4. 方法名称(框架)不应以大写字符开头。

阅读Swing Tutorial Swing 基础知识。

您可以在以下位置找到工作示例:

  1. 如何使用GridBagLayout
  2. 如何使用图标

so any solutions that not include having to change layout is highly appreciated

从工作示例开始,并根据您的要求进行更改。如果您从结构更好的代码开始,问题就会减少。

关于java - 添加图像时 JFrame 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43837126/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com