Argh, ich kriegs einfach nicht hin...
[HIGHLIGHT="Java"]package drawing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Board {
private JFrame myFrame;
private JPanel myPanel;
public Board() {
myPanel = new JPanel();
myPanel.setLayout(new GridLayout(1, 2));
myPanel.add(new Field(64, Color.RED));
myPanel.add(new Field(64, Color.BLUE));
myFrame = new JFrame("Test drawing");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.add(myPanel, BorderLayout.CENTER);
myFrame.setVisible(true);
}
class Field extends JPanel {
private int mySize;
private Color myColor;
public Field(int theSize, Color theColor) {
mySize = theSize;
myColor = theColor;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(myColor);
g.fillRect(getX(), getY(), mySize, mySize);
System.out.println(getX() + " " + getY());
System.out.println("-------------------------");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Board();
}
});
}
}
[/HIGHLIGHT]
Wieso zeichnet das nicht richtig? Die Koordinaten, die ich bekomme sind unterschiedlich aber er zeichnet immer nur das rote Rechteck.
[HIGHLIGHT="Java"]package drawing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Board {
private JFrame myFrame;
private JPanel myPanel;
public Board() {
myPanel = new JPanel();
myPanel.setLayout(new GridLayout(1, 2));
myPanel.add(new Field(64, Color.RED));
myPanel.add(new Field(64, Color.BLUE));
myFrame = new JFrame("Test drawing");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.add(myPanel, BorderLayout.CENTER);
myFrame.setVisible(true);
}
class Field extends JPanel {
private int mySize;
private Color myColor;
public Field(int theSize, Color theColor) {
mySize = theSize;
myColor = theColor;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(myColor);
g.fillRect(getX(), getY(), mySize, mySize);
System.out.println(getX() + " " + getY());
System.out.println("-------------------------");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Board();
}
});
}
}
[/HIGHLIGHT]
Wieso zeichnet das nicht richtig? Die Koordinaten, die ich bekomme sind unterschiedlich aber er zeichnet immer nur das rote Rechteck.