Hi zusammen,
entweder ich bin zu blöd oder zu blöd zum Lesen oder sonst wie, aber ich hab leider noch keine Lösung für mein Problem gefunden
Per Button möchte in die Farbauswahl aufrufen, wo dann eine Farbe gewählt werden kann und sich dann der Strich, der jetzt in blau gezeichnet ist, sich in bspw. grün färbt.
Zunächst mal der Code, den ich bisher hab:
Der Aufruf des Farbdialogs funktioniert schon, aber dann setzt es bei mir aus, denn das ganze passiert ja in der public void actionPerformed, wo ich ja keinen Rückgabewert irgendwie erhalten und weiter verwenden kann. Stellt sich also bei mir die Frage, wie bekomme ich den Wert von col in die paintComponent-Methode bekomme, so dass der Strich dann in der neuen Farbe gezeichnet wird - ich komm nicht drauf, bitte helft mir!
Danke und Grüße,
muemmel_0811
entweder ich bin zu blöd oder zu blöd zum Lesen oder sonst wie, aber ich hab leider noch keine Lösung für mein Problem gefunden
Per Button möchte in die Farbauswahl aufrufen, wo dann eine Farbe gewählt werden kann und sich dann der Strich, der jetzt in blau gezeichnet ist, sich in bspw. grün färbt.
Zunächst mal der Code, den ich bisher hab:
Java:
public class Akk_q extends JPanel{
private static final long serialVersionUID = 1L;
PictureBack pb = new PictureBack();
Akk_q() {
double[][] cr = {{800},{175,TableLayout.FILL,rand}};
setLayout(new TableLayout(cr));
add(pb, "0,0");
}
public class PictureBack extends JPanel{
private static final long serialVersionUID = 1L;
PicturePanel pp = new PicturePanel();
JLabel lbl1 = new JLabel("Rahmenfarbe ändern");
JButton btnRaFa = new JButton("Rahmenfarbe ändern");
FarbDialog fb = new FarbDialog();
PictureBack() {
setBackground(new Color(234,234,234));
setBorder(BorderFactory.createLoweredBevelBorder());
setLayout(null);
pp.setBounds(10,10,255,155);
add(pp);
btnRaFa.setBounds(290,10,180,26);
btnRaFa.addActionListener(fb);
add(btnRaFa);
}
}
public class PicturePanel extends JPanel{
private static final long serialVersionUID = 1L;
PicturePanel(){
setBackground(new Color(255,255,255));
setLayout(null);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.BLUE); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
BasicStroke stil0 = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER);
g2.setStroke(stil0);
Line2D.Float stab0 = new Line2D.Float(30.0f, 40.0f, 30.0f, 130.0f);
g2.draw(stab0);
}
}
private class FarbDialog implements ActionListener {
public void actionPerformed(ActionEvent ae) {
Color col = JColorChooser.showDialog(pb.pp,"Farbe wählen", Color.black);
if(col != null) {
pb.pp.repaint();
}
}
}
}
Danke und Grüße,
muemmel_0811
Zuletzt bearbeitet von einem Moderator: