Witam. Mam taki problem jak dodać kolejny obrazek do już powstałego JPanela? Dla zobrazowania o co mi chodzi napisałem prosty kod. W konstruktorze tworze dwa obiekty JLabel i jednemu nadaję obrazek, a drugi tylko inicjuję. Dodaję też button, który po kliknięciu powinien dodawać do zainicjowanego JLabel obrazek.
package ClientAndServer;
import Client.Code.CardReader;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by Ja on 06.01.2016.
*/
public class test extends JPanel implements ActionListener{
CardReader cardReader;
JLabel newCard;
public test(){
cardReader = new CardReader();
JLabel card = new JLabel(new ImageIcon(cardReader.load(401)));
newCard = new JLabel();
Button addCard = new Button("Add card");
addCard.setSize(100,25);
addCard.setActionCommand("addCard");
add(card);
add(addCard);
add(newCard);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(800,600);
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
frame.setLocation(dimension.width/2-frame.getSize().width/2,
dimension.height/2 - frame.getSize().height/2);
test t1 = new test();
frame.add(t1);
});
}
@Override
public void actionPerformed(ActionEvent e) {
String tmp = e.getActionCommand();
if("addCard".equals(tmp)){
newCard = new JLabel(new ImageIcon(cardReader.load(501)));
}
}
}