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
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
}
}
L'ho aggiunta quindi agli Swing containers nella tavolozza e posizionata come un normale Panello.
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:
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;
}
Ma dove lo metto? Probabilmente la mia domanda è proprio stupida, ma sono una principiante, quindi perdonatemi.
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!