codice:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Dado extends JFrame
{
Figura dado=new Figura();
Dimension dim1=new Dimension(285,245);
boolean d=false;
public Dado()
{
setTitle("Dado a 6 facce");
getContentPane().setPreferredSize(dim1);
pack();
setLocation(100,100);
try{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}
catch(Exception e){System.out.println("Errore L&F");}
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(dado);
JButton lancia=new JButton("Lancia");
lancia.addActionListener(new PulsanteLancia());
add(lancia,BorderLayout.EAST);
JCheckBox duedadi=new JCheckBox("Usa 2 dadi",false);
duedadi.addMouseListener(new DueDadi());
add(duedadi,BorderLayout.SOUTH);
}
public class PulsanteLancia implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
dado.rilancia();
}
}
public class DueDadi implements MouseListener
{
public void mousePressed(MouseEvent evt)
{
d=!d;
}
public void mouseClicked(MouseEvent evt){}
public void mouseReleased(MouseEvent evt){}
public void mouseEntered(MouseEvent evt){}
public void mouseExited(MouseEvent evt){}
}
public static void main(String[] args)
{
new Dado();
}
public class Figura extends Canvas
{
int faccia=((int)((Math.random())*6)+1);
int faccia2=((int)((Math.random())*6)+1);
boolean c=false;
public void paint(Graphics g)
{
setBackground(Color.WHITE);
g.setColor(Color.BLACK);
g.drawRoundRect(15,15,200,200,30,30);
if(faccia==2||faccia==4||faccia==5||faccia==6){g.fillOval(35,35,40,40);}
if(faccia==6){g.fillOval(95,35,40,40);}
if(faccia==3||faccia==4||faccia==5||faccia==6){g.fillOval(155,35,40,40);}
if(faccia==1||faccia==3||faccia==5){g.fillOval(95,95,40,40);}
if(faccia==3||faccia==4||faccia==5||faccia==6){g.fillOval(35,155,40,40);}
if(faccia==6){g.fillOval(95,155,40,40);}
if(faccia==2||faccia==4||faccia==5||faccia==6){g.fillOval(155,155,40,40);}
if(c){g.fillRect(4,225,1,2);}
g.setColor(Color.WHITE);
g.drawRect(0,0,445,445);
System.out.println("Disegnato");
if(d)
{
getContentPane().setPreferredSize(new Dimension(510,255));
pack();
g.setColor(Color.BLACK);
g.drawRoundRect(230,15,200,200,30,30);
if(faccia2==2||faccia2==4||faccia2==5||faccia2==6){g.fillOval(250,35,40,40);}
if(faccia2==6){g.fillOval(310,35,40,40);}
if(faccia2==3||faccia2==4||faccia2==5||faccia2==6){g.fillOval(370,35,40,40);}
if(faccia2==1||faccia2==3||faccia2==5){g.fillOval(310,95,40,40);}
if(faccia2==3||faccia2==4||faccia2==5||faccia2==6){g.fillOval(250,155,40,40);}
if(faccia2==6){g.fillOval(310,155,40,40);}
if(faccia2==2||faccia2==4||faccia2==5||faccia2==6){g.fillOval(370,155,40,40);}
System.out.println("Disegnato2");
}
else
{
getContentPane().setPreferredSize(dim1);
pack();
System.out.println("Finestra rimpicciolita");
}
}
public void rilancia()
{
faccia=((int)((Math.random())*6)+1);
faccia2=((int)((Math.random())*6)+1);
c=!c;
System.out.println(faccia);
repaint();
}
}
}
Nel programma c'è un selettore che permette di usare uno oppure due dadi,