4 개의 임의의 카드를 선택하고 4 개의 버튼으로 표시하는 간단한 앱을 시도하고 있습니다. 이제는 무작위 섹션을 새로 고치는 새로 고침 버튼을 추가하고 싶습니다. 호출 할 때마다 그 일을 끝낼 수 없지만 revalidate();
과 repaint();
을 성공하지 못했습니다.
누군가가이 문제에 도움이되기를 바랍니다. 미리 감사드립니다.JButton ActionListener로 jFrame을 새로 고침
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