Witam.
Zrobiłem prosta przeglądarkę zdjęć w javie, I chciałbym w zależności od wybranej pozycji z ComboBoxa aby wywoływała się metoda paint() i ładowała odpowiedni obrazek. Jak mam tą metodę wywołać w ActionEvent?
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication17;
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class NewJFrame extends JFrame {
public NewJFrame() {
initComponents();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
ImageIcon img1 = new ImageIcon("C:\\Users\\valery\\Desktop\\JAVA_LAB\\obraz1.JPG");
ImageIcon img2 = new ImageIcon("C:\\Users\\valery\\Desktop\\JAVA_LAB\\obraz2.JPG");
@Override
public void paint(Graphics g)
{
g.drawImage(img1.getImage(), 200, 60, this);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jComboBox1 = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Zdjecie 1", "Zdjecie 2", "Zdjecie 3", "Zdjecie 4" }));
jComboBox1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(289, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(29, 29, 29)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(171, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
if (jComboBox1.getSelectedItem()=="Zdjecie 1")
{
System.out.println("Wyswietli sie zdjecie 1");
}
else if (jComboBox1.getSelectedItem()=="Zdjecie 2")
{
System.out.println("Wyswietli sie zdjecie 2");
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JComboBox jComboBox1;
// End of variables declaration
}
Z góry dzięki za pomoc
wstawienie kodu do posta<code=>
- @furious programming