我有一个使用NetBeans IDE开发的java应用程序。我想用一个可变路径向我的gui添加一个图像。此路径可以使用的不同选项的数量将从数据库中填充,并且数量非常大,因此我不想将所有这些图像导入到我的Netbeans应用程序中。
我的图片代码:
jLabel9 = new javax.swing.JLabel();
jLabel9.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/images/defaultportrait.png"))); // NOI18N
jLabel9.setText("jLabel9");
desktopPane.add(jLabel9);
jLabel9.setBounds(520, 60, 170, 190);
我想这样,当我点击gui上的按钮时,图像源的路径发生了变化,图像在我的GUI上重新绘制。
示例:
private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {
AdjustPictureSource;
RedrawImage;
}
有没有人对此有任何想法。
另外,我提前道歉,我仍然是Java的新手。
谢谢!
答案 0 :(得分:0)
调用repaint()
调用paintComponent (Graphics g)
方法,为您重绘。默认情况下,每个GUI都有一个此方法的实例,如果您希望绘制不同的内容,则可以覆盖它。通常,如果您不想在GUI顶部绘制线条,形状或文本,则不需要覆盖它。
至于更改图片的路径,您需要向GUI对象(例如按钮)添加侦听器,以使它们能够用Java执行任何操作。在actionPerformed(ActionEvent event)
方法中,您可以输入获取新网址所需的代码。例如,您可以创建新的ImageIcon
并调用setIcon
的{{1}}方法。
作为一个侧面点,对于您多次使用的jLabel9
课程(例如import
,JLabel
等)通常会更好。
编辑:更完整的示例,使用匿名内部类:
ImageIcon