Hallo,
ich wollte eine paint Methode in einer Klasse haben ohne, dass wie hier:
hinter der Klasse extends JFrame bzw. Panel steht. Ist dies möglich ? Ich wollte ein JButton unter einer paint-Methode setzen. Ist es dann möglich den Button auf ein separaten JPanel zu setzen ?
Danke für eure Hilfe
Hier der Code:
ich wollte eine paint Methode in einer Klasse haben ohne, dass wie hier:
Code:
public class Punkte_Test extends JPanel implements ActionListener{...}
Danke für eure Hilfe
Hier der Code:
Java:
package gui;
import java.awt.BorderLayout;
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;
import javax.swing.JPanel;
public class Punkte_Test extends JPanel implements ActionListener{
private JFrame f;
public int x = 10;
public int y = 10;
private JButton button;
public Punkte_Test() {
f = new JFrame("Bewegung");
f.setSize(500,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(this);
button = new JButton ("Nochmal");
button.addActionListener(this);
f.add(button, BorderLayout.CENTER);
f.setBackground(Color.white);
f.setVisible(true);
}
public void paint(Graphics g){
try {if (x < 200) {
g.setColor(Color.cyan);
g.drawLine(x, y, x, y);
x = x + 1;
Thread.sleep(50);
f.repaint();
f.setVisible(true);
}else if(x > 199){
g.setColor(Color.red);
g.drawRect(x, y, x, y);
/*
* g.drawRect(x, y, 0, 0); --> zeichnet Punkt
* g.drawRect(0, y, x, 0); --> zeichnet Linie
*/
x = x + 1;
Thread.sleep(25); // Thread.sleep(int); legt die Geschwindigkeit fest
f.repaint();
f.setVisible(true);
}else{
System.out.println("Error");
}
} catch (InterruptedException e) {
System.out.println("Error");
e.printStackTrace();
}
}
public static void main(String[] args) {
new Punkte_Test();
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
}