Salve a tutti.
All'interno di un progetto devo implementare un piccolo mini editor, ovvero il famoso paint (semplificato). Ho bisogno quindi che l'utente possa scegliere lo strumento per disegnare: pennello, rettangolo, ovale, gomma; il colore e lo spessore.
Io ho creato un jPanel con dentro dei jRadioButton (tutti di uno stesso gruppo) per gli strumenti, un ComboBox per la selezione del colore e uno Slider per lo spessore.
Ho poi creato una nuova classe
L'ho aggiunta quindi agli Swing containers nella tavolozza e posizionata come un normale Panello.codice:import java.awt.*; import java.awt.event.*; // Java extension packages import javax.swing.*; public class Painter extends JPanel { private int xValue = -10, yValue = -10; public Painter() { addMouseMotionListener( new MouseMotionAdapter() { public void mouseDragged( MouseEvent event ) { xValue = event.getX(); yValue = event.getY(); repaint(); } } ì ); ì setVisible( true ); } public void paintComponent(Graphics g) { g.fillOval(xValue, yValue, 5, 5); // qui al posto dei 5 ci dovrebbe essere lo spessore definito dallo slider } }
Sin qua nessun problema, funziona tutto (anche se disegna davvero male, ma pazienza)
Il mio problema è quello di aggiungere le funzioni dei diversi controlli. Ho pensato a un codice del genere:
Ma dove lo metto? Probabilmente la mia domanda è proprio stupida, ma sono una principiante, quindi perdonatemi.codice:private int spessore = jSlider1.getValue(); private Color colore; private int c = jComboBox1.getSelectedIndex(); if (c == 0) { colore = Color.WHITE; } else if (c == 1) { colore = Color.BLACK; } else if (c == 2) { colore = Color.BLUE; } else if (c == 3) { colore = Color.GREEN; } else if (c == 4) { colore = Color.GRAY; } else if (c == 5) { colore = Color.YELLOW; } else if (c == 6) { colore = Color.PINK; } else if (c == 7) { colore = Color.RED; } else if (c == 8) { colore = Color.CYAN; }
prendiamo per esempio lo slider.
Ho provato a creare un metodo nella sorgente: quando lo stato dello slider cambia inserisce in una variabile il valore dello slider stesso e ritorna questa variabile. Ho provato quindi a chiamare questo metodo nella classe Painter ma non fa.
Aiuto!

Rispondi quotando