Hallo zusammen,
ich befasse mich erst seit kurzen mit Java und verstehe nicht wann jeweils die Methode “paint“ aufgerufen wird. Bisher habe ich das unten stehende Programm erstellt. Mit dem Debugger sehe ich, dass „paint“ bei Aufruf von „this.setVisible(true);“ ausgeführt wird. Warum? Zudem wird es 2 Mal hintereinander ausgeführt.
Des Weiteren möchte ich die „paint“-Methode in eine neue Klasse legen und dann von außen aufrufen. Wie funktioniert das? Ich habe es bereits mit repaint() versucht, aber es hat nicht funktioniert.
--------------------------
-------------------------
ich befasse mich erst seit kurzen mit Java und verstehe nicht wann jeweils die Methode “paint“ aufgerufen wird. Bisher habe ich das unten stehende Programm erstellt. Mit dem Debugger sehe ich, dass „paint“ bei Aufruf von „this.setVisible(true);“ ausgeführt wird. Warum? Zudem wird es 2 Mal hintereinander ausgeführt.
Des Weiteren möchte ich die „paint“-Methode in eine neue Klasse legen und dann von außen aufrufen. Wie funktioniert das? Ich habe es bereits mit repaint() versucht, aber es hat nicht funktioniert.
--------------------------
Java:
package Pack1;
public class Start {
public static Fenster Fenster;
public static void main(String[] args) throws Exception{
Fenster = new Fenster();
Fenster.FensterErstellen();
Fenster.ButtonErstellen();
}
}
-------------------------
Java:
package Pack1;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Fenster extends JFrame implements ActionListener{
private JButton VonLinks1;
private JButton VonLinks2;
private JButton VonRechts;
private JButton Schliessen;
public Fenster () {
super("Test");
}
public void FensterErstellen() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(1000,800);
this.setLayout(null);
this.setVisible(true);
}
public void ButtonErstellen () {
VonRechts = new JButton("Von rechts");
VonRechts.setBounds(72, 700, 160, 40);
VonRechts.addActionListener(this);
add(VonRechts);
VonLinks1 = new JButton("Von links1");
VonLinks1.setBounds(304, 700, 160, 40);
VonLinks1.addActionListener(this);
add(VonLinks1);
VonLinks2 = new JButton("Von links2");
VonLinks2.setBounds(536, 700, 160, 40);
VonLinks2.addActionListener(this);
add(VonLinks2);
Schliessen = new JButton("Schließen");
Schliessen.setBounds(768, 700, 160, 40);
Schliessen.addActionListener(this);
add(Schliessen);
}
public void paint (Graphics g){
super.paint(g);
g.setColor(new Color(100,100,250));
g.fillRect(50, 50, 100, 100);
System.out.println("paint");
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}
Zuletzt bearbeitet von einem Moderator: