Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何在表格中添加图像?_Java_Image_Icons - Fatal编程技术网

Java 我如何在表格中添加图像?

Java 我如何在表格中添加图像?,java,image,icons,Java,Image,Icons,我有个问题。我想用Java在表单中放置一个图像,但我不知道我是否使用了适当的技术(在网页中的某个地方找到) 因此,它实际上显示了图像,并且正在调整大小,但当我调整窗体大小,然后再次将其变小时,标签似乎没有跟随调整大小,因此它保持比窗口大 另外,由于我对java的图形不是很熟悉,有人能告诉我如何控制窗口大小调整事件以便重新绘制图片吗?现在,该方法由组合框和代码中显示的单选按钮触发 提前谢谢 edit1:表单就是我的jFrame。Icongraph标签是我将图像放入的jLabel。我将尝试解释父组件

我有个问题。我想用Java在表单中放置一个图像,但我不知道我是否使用了适当的技术(在网页中的某个地方找到)

因此,它实际上显示了图像,并且正在调整大小,但当我调整窗体大小,然后再次将其变小时,标签似乎没有跟随调整大小,因此它保持比窗口大

另外,由于我对java的图形不是很熟悉,有人能告诉我如何控制窗口大小调整事件以便重新绘制图片吗?现在,该方法由组合框和代码中显示的单选按钮触发

提前谢谢

edit1:表单就是我的jFrame。Icongraph标签是我将图像放入的jLabel。我将尝试解释父组件的层次结构

PlotArea[jPanel](cardLayout)>PlotArea_图像[jPanel](“cardDraw”)>iconGraphPanel[jPanel]>iconGraphLabel

但是当我调整表单大小时 再小一点,标签 似乎没有跟随调整大小,所以 它比窗户还大

正确,JLabel或任何使用图标的Swing组件将按其实际大小绘制图标。如果希望图标根据可用空间进行缩放,则需要进行自定义绘制


这些类为显示图像提供了不同的选项(您可以使用图标getImage()方法)。您还应该阅读Swing教程中关于的部分,以便更好地理解上述代码的工作原理。

找到了解决方案。这是最终代码:

private void iconSelect() {
    iconGraphPanel.removeAll();
    ImageIcon icon = new ImageIcon("image.jpg");
    BackgroundPanel imagePanel = new BackgroundPanel(icon.getImage(), BackgroundPanel.SCALED);
    iconGraphPanel.add(imagePanel);
    iconGraphPanel.revalidate();
}
iconGraphPanel是我用作占位符的常用jPanel。它需要设置为BorderLayout。可以找到BackgroundPanel类。需要removeAll()以便旧图像消失。如果你不把这些图像开始堆叠起来。我不知道是否有更好的方法,但对我来说效果很好。需要revalidate()方法,因为我们创建了一个新面板,所以它需要刷新


这主要是camickr的作品和来自太阳论坛的另一个叫Maxideon的家伙。我只是发布供将来参考。

似乎您发布了很多不相关的代码(设置iconString),但忽略了内容(您认为什么是“表单”,什么是“iconGraphLabel”,还有哪些组件以及父组件中使用了哪些布局,等等)。如果没有这些信息,你很难回答你的问题。希望能有帮助…谢谢你的帮助,伙计,看起来不错,但我不能让它工作。有没有什么方法可以将代码放入注释中,这样我就可以向您展示??:P
private void iconSelect() {
    iconGraphPanel.removeAll();
    ImageIcon icon = new ImageIcon("image.jpg");
    BackgroundPanel imagePanel = new BackgroundPanel(icon.getImage(), BackgroundPanel.SCALED);
    iconGraphPanel.add(imagePanel);
    iconGraphPanel.revalidate();
}