Premetto ke ancora sono alle prime armi con Java.
Ho creato questa classe che disegna il numero di ellissi indicato nella casella di testo. Come faccio a gestire l'eventuale inserimento di valori non validi (lettere al posto di cifre) in modo ke ,in caso di valori errati , venga impostato sulla casella di testo con valore non valido il valore di default 10?
Grazie!
PS spero ke almeno la parte di codice scritta sia giusta!;P
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class DisegnaEllissi extends JPanel
{
private JLabel etichetta;
private JTextField campoTest;
private JButton pulsante;
private int x,y,w,h;
private int numEllissi;
private Random generator;
private int R,G,B;
public DisegnaEllissi()
{
ButtonListener listener = new ButtonListener();
etichetta = new JLabel();
etichetta.setText("numero di ellissi");
add(etichetta);
campoTest = new JTextField();
campoTest.setPreferredSize(new Dimension (100,25));
add(campoTest);
campoTest.addActionListener(listener…
pulsante = new JButton("aggiorna");
add(pulsante);
pulsante.addActionListener(listener)…
generator = new Random();
}
public void paintComponent(Graphics g)
{ super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i<numEllissi; i++)
{ x=generator.nextInt(getWidth());
y=generator.nextInt(getHeight());
w=generator.nextInt(200-50)+50;
h=generator.nextInt(200-50)+50;
R = generator.nextInt(255);
G = generator.nextInt(255);
B = generator.nextInt(255);
while ( !((x+w)<(getWidth())) || !((y+h)<(getHeight())))
{x=generator.nextInt(getWidth());
y=generator.nextInt(getHeight());
w=generator.nextInt(200-50)+50;
h=generator.nextInt(200-50)+50;}
g2.setColor(new Color(R,G,B));
g2.fill(new Ellipse2D.Double (x,y,w,h));
g2.setColor(Color.BLACK);
g2.draw(new Ellipse2D.Double (x,y,w,h));
}
}
public void numeroEllissi (int conto)
{ numEllissi = conto;
repaint();
}
private class ButtonListener implements ActionListener
{ public void actionPerformed(ActionEvent event)
{ Object source = event.getSource();
if (source == pulsante)
repaint();
if ( source == campoTest)
{ String input = campoTest.getText();
numeroEllissi(Integer.parseInt(inp…
campoTest.setText(" ");
}
}
}
}
class MainApplicazione
{ public static void main (String[] args)
{ JFrame f = new JFrame();
f.setContentPane(new DisegnaEllissi());
f.setSize(800,800);
f.setDefaultCloseOperation(JFrame.EXI…
f.setVisible(true);
}
}

Rispondi quotando