Witam. Jest to mój pierwszy post na forum.
Zwracam się z prośbą o sprawdzenie kodu, gdyż ja już na prawdę nie mam głowy (dopiero się uczę, a internet nie dał mi pożądanych wyników, program oczywiście też w celach edukacyjnych). Otóż chodzi o to, by po wciśnięciu klawisza odświeżały się karty, myślę, że odświeżanie paneli następuje, a problem tkwi w klasie Deck.
Jeśli ktoś zainteresuje się tematem dam resztę kodu. Pozdrawiam :-)
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.JLabel;
public class MainFrame extends JFrame implements ActionListener {
private Deck taliaKart;
private CommunityCardsPanel kartyWspolne;
private HandsCardsPanel receStartowe;
private JLabel background;
private JButton odswiez;
public MainFrame() {
super("Poker Texas Hold'em");
setSize(430, 255);
setLocationRelativeTo(this);
setResizable(false);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
taliaKart = new Deck();
kartyWspolne = new CommunityCardsPanel(taliaKart);
kartyWspolne.setOpaque(false);
kartyWspolne.setBounds(10, 10, 420, 106);
add(kartyWspolne);
receStartowe = new HandsCardsPanel(taliaKart);
receStartowe.setOpaque(false);
receStartowe.setBounds(10, 116, 164, 106);
add(receStartowe);
odswiez = new JButton("Odśwież");
odswiez.setBounds(174, 116, 100, 32);
odswiez.addActionListener(this);
add(odswiez);
background = new JLabel(new ImageIcon("images/background.png"));
background.setOpaque(false);
background.setBounds(0, 0, 424, 223);
add(background);
}
public void actionPerformed(ActionEvent arg0) {
if (arg0.getSource() == odswiez) {
taliaKart = new Deck();
kartyWspolne.revalidate();
kartyWspolne.repaint();
}
}
}
public class Deck {
private SimpleCard[] deck;
private int index = 0;
public Deck() {
deck = new SimpleCard[52];
SimpleCard temp[] = new SimpleCard[52];
Losowanie los = new Losowanie(52);
for (int i = 0; i < 52; i++) {
temp[i] = new SimpleCard(Integer.toString(i + 1));
deck[los.get()] = temp[i];
}
}
public SimpleCard nextCard() {
index++;
return deck[index - 1];
}
}