Hallo,
ich habe ein JFrame, in das per GridLayout(3,1) drei übereinanderliegende Bereiche geschaffen werden.
In den mittleren Bereich kommt ein JPanel, auf das per paint-Methode zB eine Linie gezeichnet werden soll.
Frage:
Ich möchte in der Mitte einen schwarzen Hintergrund. Die Zeichnung soll nicht über das ganze JFrame gehen (wie im Beispiel unten), sondern nur über dem schwarzen Hintergrund geschehen.
Weiß jemand Rat?
PS: Natürlich könnte ich irgendwas mit clipping machen, aber da muss ich feste Koordinaten eingeben. Die Ändern sich aber, wenn ich das JFrame mit der Maus größer ziehe. Am liebsten wäre es mir, wenn sich der Ursprung für die Zeichnung nicht linksoben am JFrame, sondern linksoben am JPanel orientiert.
ich habe ein JFrame, in das per GridLayout(3,1) drei übereinanderliegende Bereiche geschaffen werden.
In den mittleren Bereich kommt ein JPanel, auf das per paint-Methode zB eine Linie gezeichnet werden soll.
Frage:
Ich möchte in der Mitte einen schwarzen Hintergrund. Die Zeichnung soll nicht über das ganze JFrame gehen (wie im Beispiel unten), sondern nur über dem schwarzen Hintergrund geschehen.
Weiß jemand Rat?
Java:
public class Asdf extends JFrame{
public static void main(String[] args) {
Asdf a = new Asdf();
a.setSize(500,500);
a.setVisible(true);
Container c = a.getContentPane();
c.setLayout(new GridLayout(3,1));
c.add(new JButton("1")); //im oberern Bereich ein Button
JPanel p = new JPanel(); //in der Mitte soll gezeichnet werden
c.add(p);
c.add(new JButton("3")); //im unteren Bereich ein Button
}
public void paint(Graphics g){ //zeichnet leider über das ganze JFrame
g.setColor(Color.red);
g.drawLine(0, 0, 500, 500);
}
}
PS: Natürlich könnte ich irgendwas mit clipping machen, aber da muss ich feste Koordinaten eingeben. Die Ändern sich aber, wenn ich das JFrame mit der Maus größer ziehe. Am liebsten wäre es mir, wenn sich der Ursprung für die Zeichnung nicht linksoben am JFrame, sondern linksoben am JPanel orientiert.
Zuletzt bearbeitet: