我有一个代码,它采用两个采用网格布局的JLabel图像,然后将它们放在另外两个相同的2x2布局中。这很有效,但它以一种非常奇怪的方式出现。图像和所有图像都位于最右下方,我只能看到蓝色的一瞥(这是我的一张照片的颜色的一部分)。我不知道这是我的日食问题,还是我的代码有问题,但是一旦我重新点击窗口的标题栏,它就会再次自我修复并成为我想要的。我怎么能解决这个问题,因为我很确定这是eclipse中的一个问题。我提供了实际成功的部分代码:
public class giraffe implements ActionListener{
public void actionPerformed(ActionEvent event) {
JOptionPane.showMessageDialog(null,
"Press ok, and see the amazing giraffe outside a window!");
JDialog giraffewindow = new JDialog();
Icon giraffe = new ImageIcon(getClass().getResource("giraffe.png"));
Icon windows = new ImageIcon(getClass().getResource("windows.png"));
giraffewindow.setLayout(new GridLayout(1, 2, 0, 0));
giraffewindow.add(new JLabel (windows));
giraffewindow.add(new JLabel (giraffe));
giraffewindow.setSize(2000,2000);
giraffewindow.setTitle("GIRAFFE!");
giraffewindow.setVisible(true);
giraffewindow.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
}
同样,我99%肯定这不是代码问题,但是我的日食有问题。我该怎么做才能解决这个问题?非常感谢您花时间阅读本文,我非常感谢您为帮助其他程序员而付出的努力!
答案 0 :(得分:1)
不要使用setSize()方法。 2000 x 2000可能比屏幕尺寸大,导致问题。
使用pack()方法,对话框将根据图像的大小自行调整大小。
如果我想在改变图片大小的同时按比例改变对话框的大小?
也许您可以使用Darryl的Stretch Icon,它会根据可用空间动态调整图片大小。