Я пробовал простое приложение, которое выбрало бы 4 случайных карты и отобразило их на 4 кнопках, пока все в порядке, я хочу добавить кнопку обновления, которая обновит случайные разделы каждый раз, когда он вызывается, но я не могу этого сделать, я пробовал revalidate();
и repaint();
без успеха.
Я надеюсь, что кто-то может мне помочь, спасибо заранее.обновить jFrame с помощью JButton ActionListener
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class rest extends JFrame{
public rest(){
int x=(int)(Math.random()*55);
int y=(int)(Math.random()*55);
int z=(int)(Math.random()*55);
int b=(int)(Math.random()*55);
ImageIcon i1= new ImageIcon("image/card/"+x+".png");
ImageIcon i2= new ImageIcon("image/card/"+y+".png");
ImageIcon i3= new ImageIcon("image/card/"+z+".png");
ImageIcon i4= new ImageIcon("image/card/"+b+".png");
JButton b1 = new JButton();
b1.setIcon(i1);
JButton b2 = new JButton();
b2.setIcon(i2);
JButton b3 = new JButton();
b3.setIcon(i3);
JButton b4 = new JButton();
b4.setIcon(i4);
JPanel p = new JPanel();
p.setLayout(new GridLayout(1,4,5,5));
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
JPanel p1= new JPanel();
JButton b5 = new JButton("refresh");
p1.setLayout(new BorderLayout());
p1.add(b5,BorderLayout.EAST);
setLayout(new BorderLayout());
add(p,BorderLayout.CENTER);
add(p1,BorderLayout.SOUTH);
b5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//revalidate();
//repaint();
}
});
}
public static void main(String[] args) {
rest f= new rest();
f.setTitle("poker");
f.setSize(300,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
Я буду помнить это, спасибо :) – thrax