H
Hertz
Gast
Hallo,
Habe ein Frage zum unteren Code.
Es wird die Anzahl Würfel gewählt, unde auf einem Label das Resultat der einzelnen Würfel, nebeneinander dargestellt.
Zusätzlich wollte ich Grafikwürfel, auf dem Panel erscheinen lassen.
Hier bin ich mir nicht sicher, ob das mit den if-bedingungen ok ist.
Habe in actionPerformed, etwas mit validate(), repaint(), und JPanel probiert, wobei das panel leer bleibt?
Vielen Dank für die Hilfe
H.
Habe ein Frage zum unteren Code.
Es wird die Anzahl Würfel gewählt, unde auf einem Label das Resultat der einzelnen Würfel, nebeneinander dargestellt.
Zusätzlich wollte ich Grafikwürfel, auf dem Panel erscheinen lassen.
Hier bin ich mir nicht sicher, ob das mit den if-bedingungen ok ist.
Habe in actionPerformed, etwas mit validate(), repaint(), und JPanel probiert, wobei das panel leer bleibt?
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class WürfelSpiel1 {
public static void main(String[] args) {
WürfelSpiel1 wu = new WürfelSpiel1();
wu.getGuiPanel();
}
int z;
JLabel label;
JComboBox anzahlWürfel;
JFrame frame;
JPanel panel;
public void getGuiPanel() {
frame = new JFrame();
frame.setSize(300,300);
frame.setVisible(true);
panel = new JPanel();
JButton button = new JButton("Wirf!");
String[] wahl = {"1", "2", "3", "4", "5"};
anzahlWürfel = new JComboBox(wahl);
label = new JLabel("hier erscheinen gleich die Augenzahlen");
button.addActionListener(new WurfListener());
panel.add(anzahlWürfel);
panel.add(button);
panel.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
}
public class WurfListener implements ActionListener {
public void actionPerformed(ActionEvent ev) {
//würfeln
String augenZahl = "";
String auswahl = (String) anzahlWürfel.getSelectedItem();
int anzahlZuWerfende = Integer.parseInt(auswahl);
for (int i = 0; i < anzahlZuWerfende; i++) {
z = (int) ((Math.random() * 6) +1);
augenZahl += (" " + z);
Grafikwürfel w = new Grafikwürfel();
frame.repaint();
}
label.setText(augenZahl);
}
}
class Grafikwürfel extends JPanel {
public void paintComponent(Graphics g) {
if(z == 1) {
g.setColor(Color.black);
g.fillRect(350,350,90,90);
g.setColor(Color.white);
g.fillOval(385,385,20,20);
}
if(z == 2) {
g.setColor(Color.blue);
g.fillRect(750,350,90,90);
g.setColor(Color.green);
g.fillOval(750,350,20,20);
g.fillOval(820,420,20,20);
}
if(z == 3) {
g.setColor(Color.yellow);
g.fillRect(850,350,90,90);
g.setColor(Color.red);
g.fillOval(850,350,20,20);
g.fillOval(885,385,20,20);
g.fillOval(920,420,20,20);
}
if(z == 4) {
g.setColor(Color.green);
g.fillRect(650,350,90,90);
g.setColor(Color.cyan);
g.fillOval(650,350,20,20);
g.fillOval(650,420,20,20);
g.fillOval(720,350,20,20);
g.fillOval(720,420,20,20);
}
if(z == 5) {
g.setColor(Color.pink);
g.fillRect(450,350,90,90);
g.setColor(Color.black);
g.fillOval(450,350,20,20);
g.fillOval(520,350,20,20);
g.fillOval(485,385,20,20);
g.fillOval(450,420,20,20);
g.fillOval(520,420,20,20);
}
if(z == 6) {
g.setColor(Color.darkGray);
g.fillRect(550,350,90,90);
g.setColor(Color.magenta);
g.fillOval(560,350,20,20);
g.fillOval(560,385,20,20);
g.fillOval(560,420,20,20);
g.fillOval(610,350,20,20);
g.fillOval(610,385,20,20);
g.fillOval(610,420,20,20);
}
}
}
}
Vielen Dank für die Hilfe
H.