Hallo,
zunächst einmal ist zu Erwähnen, dass ich ein Einsteiger in der Programmierung bin. Hab zwar 1 Jahr Schule hintermir, allerdings konnte mir mein Leher nicht hilfreich helfen. Er kann nähmlich selber kaum programmieren, er holt sich seine Quellcodes immer aus dem Internet Hab auch schon hier gesucht aber nichts gefunden, was mir i-wie weiterhilft oder habs eben einfach nicht gerafft(zu och für mich).
Also ich wollte 2 Buttons erstellen, der erste soll beim "Klick" ein Rechteck zeichnen, der zweite sollte das Fenster schließen. Nun zu meiner Frage: Warum kann ich die paintComponent-Methode nicht direkt beim actionPerformed des Buttons aufrufen? hab shcon rumprobiert und versucht die paintComponent noch mal in eine eigene Methode zu schreiben, aber ne geht auch nich..
[Java]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SchulVortrag extends JPanel{
JButton btRechteck,btSchließen;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(100,100,50,50);
g.setColor(Color.red);
}
class ActionListenerButtons implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource() == btRechteck){
paintComponent();
}
if(e.getSource() == btSchließen){
System.exit(0);
}
}
}
public SchulVortrag(){
setLayout(new GridLayout(0,2));
add(btRechteck = new JButton("Rechteck erzeugen"));
add(btSchließen = new JButton("Fenster schließen"));
btRechteck.addActionListener(new ActionListenerButtons());
btSchließen.addActionListener(new ActionListenerButtons());
}
public static void main(String[] agrs){
JFrame frame = new JFrame("Kleiner Schulvortrag");
frame.getContentPane().add(new SchulVortrag());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
[/Java]
Danke schonmal im Vorraus!
zunächst einmal ist zu Erwähnen, dass ich ein Einsteiger in der Programmierung bin. Hab zwar 1 Jahr Schule hintermir, allerdings konnte mir mein Leher nicht hilfreich helfen. Er kann nähmlich selber kaum programmieren, er holt sich seine Quellcodes immer aus dem Internet Hab auch schon hier gesucht aber nichts gefunden, was mir i-wie weiterhilft oder habs eben einfach nicht gerafft(zu och für mich).
Also ich wollte 2 Buttons erstellen, der erste soll beim "Klick" ein Rechteck zeichnen, der zweite sollte das Fenster schließen. Nun zu meiner Frage: Warum kann ich die paintComponent-Methode nicht direkt beim actionPerformed des Buttons aufrufen? hab shcon rumprobiert und versucht die paintComponent noch mal in eine eigene Methode zu schreiben, aber ne geht auch nich..
[Java]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SchulVortrag extends JPanel{
JButton btRechteck,btSchließen;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(100,100,50,50);
g.setColor(Color.red);
}
class ActionListenerButtons implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource() == btRechteck){
paintComponent();
}
if(e.getSource() == btSchließen){
System.exit(0);
}
}
}
public SchulVortrag(){
setLayout(new GridLayout(0,2));
add(btRechteck = new JButton("Rechteck erzeugen"));
add(btSchließen = new JButton("Fenster schließen"));
btRechteck.addActionListener(new ActionListenerButtons());
btSchließen.addActionListener(new ActionListenerButtons());
}
public static void main(String[] agrs){
JFrame frame = new JFrame("Kleiner Schulvortrag");
frame.getContentPane().add(new SchulVortrag());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
[/Java]
Danke schonmal im Vorraus!