Java 单击“下一步”时无法更改jScrollPane中的图像
我正在制作一个jframe,其中添加的图像将随着单击“下一步”而更改。我已经编写了一个代码,但它不起作用。下面是代码:Java 单击“下一步”时无法更改jScrollPane中的图像,java,swing,Java,Swing,我正在制作一个jframe,其中添加的图像将随着单击“下一步”而更改。我已经编写了一个代码,但它不起作用。下面是代码: i++; ImageIcon icon = new ImageIcon(mean.get(0)); Image image = icon.getImage(); // transform it Image newimg = image.getScaledInstance(180, 140, java.awt.Image.SCALE_SMOOTH
i++;
ImageIcon icon = new ImageIcon(mean.get(0));
Image image = icon.getImage(); // transform it
Image newimg = image.getScaledInstance(180, 140, java.awt.Image.SCALE_SMOOTH); // scale it the smooth way
icon = new ImageIcon(newimg);
JLabel label = new JLabel( icon );
jScrollPane1= new JScrollPane( label );
请帮助问题在于:
jScrollPane1= new JScrollPane( label );
将对象放置在JFrame中的字段jScrollPane
设置为另一个jScrollPane,其对象未添加到GUI中
将原始标签存储在字段中,例如jLabel1
,然后设置该标签
可能需要重新喷漆。问题在于:
jScrollPane1= new JScrollPane( label );
将对象放置在JFrame中的字段jScrollPane
设置为另一个jScrollPane,其对象未添加到GUI中
将原始标签存储在字段中,例如jLabel1
,然后设置该标签
可能需要重新绘制。您需要调用:
- 重新验证()
- 重画
- 重新验证()
- 重画
请参见此处的解释,说明为什么将此添加到代码的末尾
jScrollPane1
。如果尚未创建JFrame
已创建一个如下所示的框架,则将该jScrollPane1
添加到JFrame
中
JFrame frame = new JFrame();
frame.add(jScrollPane1, BorderLayout.CENTER);
还可以将布局设置为
BorderLayout
,但您可以尝试其他布局,也可以不添加布局。将此添加到代码的末尾jScrollPane1
。如果尚未创建JFrame
已创建一个如下所示的框架,则将该jScrollPane1
添加到JFrame
中
JFrame frame = new JFrame();
frame.add(jScrollPane1, BorderLayout.CENTER);
还可以将布局设置为
BorderLayout
,但您可以尝试其他布局,也可以不添加布局。您不需要告诉Java重新绘制吗?尝试过了。没有编辑您的问题并显示初始化jScrollPane1
的代码,以及将其添加到JFrame中的代码。1)要更快地获得更好的帮助,请发布或。2) 将您的MSCVE/SSCCE建立在这个基础上。@camickr…这个问题的答案是关于如何添加图像的…这里我想更改现有图像您不需要告诉Java重新绘制吗?尝试过了。没有成功编辑您的问题并显示初始化的代码jScrollPane1
,以及将其添加到JFrame中的代码。1)要更快地获得更好的帮助,请发布或。2) 将你的MSCVE/SSCCE建立在这个基础上。@camickr…这个问题的答案是关于如何添加图像的…在这里我想更改现有图像我尝试了它。但是它不工作。我尝试了。但是它不工作。但是它不工作。我尝试了。但是它不工作。我已经创建了一个JFrame,所以你不必创建一个JFrame
只需放置您的JFrame
名称而不是frame
@ani将frame
更改为您的JFrame
变量名称。然后其他组件将被重新加载..我不想那样..我只想更改特定的图像。@ani使用removeAll()
删除其他的。我已经创建了一个JFrame,所以你不必创建一个JFrame
只需将你的JFrame
名称而不是frame
@ani changeframe
添加到你的JFrame
变量名称中。然后其他组件将被重新加载..我不想那样..我只是想更改那个特定的名称image.@ani使用removeAll()
删除其他内容。