Paintmethode auf ein Panel in einem Frame setzen?

a400

Mitglied
Hallo!

ich hab eine Frage bezüglich der paint(Graphics g) Methode. Und zwar hab ich mir einen

Frame erstellt und diesem ein BorderLayout gemacht. In jedem bereich des BorderLayouts

(aslo Center, North, South....) befindet sich ein JPanel. Da ich den Frame ganz flexibel

gestallten will bzw. die einzelnen Elemente auch noch verschoben werden sollen. Möchte ich

die ELemente, die ich mir mit Paint erstellt habe in ein Panel setzen und nicht direkt in

den Frame rein.

In etwa soll es so ausschauen, ich geb mal ein Beispiel:
Code:
.... 

JComponent jc = (JComponent)getContentPane(); 
... 


void initLayout() 
	{ 
	jc.setLayout( new BorderLayout( ) ); 

		 JPanel southPnl = new JPanel(); 
		 JLabel label1 = new JLabel("Mal sehen"); 
		 southPnl.add(label1); 
		 jc.add("South", southPanel); 

		 JPanel eastPnl = new JPanel(); 
		 eastPnl.add(// hier soll nun das erste Element der Paintsachen geaddet werden,	  

				 //  also g.drawString(bildeins,35,190)); 

  public void paint(Graphics g) 
	{ 
		g.setColor(Color.blue); 
		
		g.drawString(bildeins,35,190); 
		g.drawString(bildzwei,115,190); 
		g.drawString(labeldrei,195,190); 
		g.drawString(stringvier,275,190); 
		g.drawString(zahlfuenf,355,190); 
	}
Kann mir jemand zeigen wie man das hinbekommt? Danke vorab.
 
Okay, ich geb zu, das Beispiel ist nicht gut gewählt, deshalb hier ein weiters,
wenn ich das hier z.B. in das Panel adden möchte und dann in den "east" packen möchte und nicht in den Haptframe

Code:
 ... 
g.setColor(Color.BLUE);			
	for(int i=0; i<10; i++) 
	 { 
	   g.fillRoundRect(50+110*i,60,80,80,11,11); 
	 } 
...
 
nochmals ich ich bin jetzt so weit, das ich mir das hier erzeugt habe, aber es klappt trotzdem nicht....

Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class ab extends JFrame
{
 private JComponent jc = (JComponent)getContentPane();
 ab()
 {
	 super();
		 setTitle("Test");
		 setSize(800, 478);		
		 setForeground(Color.blue);
		 setBackground(Color.white);  
		 initLayout();
		 setLocationRelativeTo(null);
		 setVisible(true);
		 setResizable(true);		
	 }

void initLayout() 
{ 
jc.setLayout( new BorderLayout( ) ); 

	 JPanel southPnl = new JPanel(); 
	 JLabel label1 = new JLabel("Mal sehen"); 
	 southPnl.add(label1); 
	 jc.add("South", southPnl); 

	 JPanel eastPnl = new JPanel(); 

	 Graphics g = eastPnl.getGraphics(); 
	 g.setColor(Color.blue); 
	
	 for(int i=0; i<10; i++) { 
		 g.fillRoundRect(50+110*i,60,80,80,11,11); 
	 } 
	 jc.add("East", eastPnl);
}

 

public static void main(String[] args) {
 ab frame = new ab();
 frame.setSize(800, 300);
 frame.setLocationRelativeTo(null);
 frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
 frame.setVisible(true);
}
}

Wo liegt denn jetzt wieder der Fehler?
 
Zurück