Also ich muss ein kleines Programm schreiben, dabei habe ich einmal eine Klasse (ein Jpanel) für die Buttons und eine Klasse(auch ein Jpanel) zum Zeichnen. Wenn ich jetzt von der Button Klasse die Methode in der Zechnen Klasse aufrufe wir komischerweiße auf dem Jpanel der Zeichen Klasse der Button mitgezeichnet der eig nur auf der Button seite sein sollte und ichw eiß nicht wieso.
Klasse Main :
Klasse zum Zeichnen:
Klasse für die Buttons:
Klasse Main :
Java:
import java.awt.FlowLayout;
import javax.swing.JFrame;
public class Main {
public static Workspace wspc = new Workspace();
public static Buttenspace bspc = new Buttenspace(wspc);
public static void main(String[] args) {
JFrame window = new JFrame("Kunst");
window.setLayout(new FlowLayout());
window.add(wspc);
window.add(bspc);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.pack();
window.setVisible(true);
}
}
Klasse zum Zeichnen:
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.LayoutManager;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Workspace extends JPanel {
//Dimensionen
public static final int WIDTH = 500;
public static final int HEIGHT = 400;
//Random
int geoRandome = 10;
public Workspace() {
super();
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
requestFocus();
}
public void creatnewObject() {
geoRandome = (int) (Math.random() * (3 - 0) + 0);
this.repaint();
}
@Override
public void paint( Graphics g ) {
if (geoRandome == 0) {
g.drawOval(10, 10, 10, 10);
System.out.println("0");
}
else if (geoRandome == 1) {
g.drawLine(20, 20, 40, 40);
System.out.println("1");
}
else if (geoRandome == 2) {
g.drawRect(100, 100, 50, 50);
System.out.println("2");
}
}
}
Klasse für die Buttons:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Buttenspace extends JPanel {
//Dimensionen
public static final int WIDTH = 200;
public static final int HEIGHT = 400;
//Buttons
private JButton nextStep = new JButton();
//Workspace
private Workspace wspc;
public Buttenspace(Workspace wspc) {
super();
this.wspc = wspc;
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setFocusable(true);
requestFocus();
nextStep.setBounds(WIDTH/4, 0, WIDTH/2, HEIGHT/8);
nextStep.setText("Neues Objekt");
nextStep.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1_ActionPerformed(evt);
}
});
this.add(nextStep);
}
private void jButton1_ActionPerformed(ActionEvent evt) {
wspc.creatnewObject();
}
public void paint( Graphics g )
{
g.drawRect(0, 0, WIDTH-1, HEIGHT-1);
}
}