Einfaches Quadrat zeichnen

ehlr

Aktives Mitglied
Hallo.

Wie kann ich auf einer Frame ein einfaches Quadrat zeichnen?


lg
 
Zuletzt bearbeitet von einem Moderator:
Java:
public class Quadrat extends JPanel{
 
      @Override
  public void paintComponent( Graphics g )
  {    
   
    g.drawRect(x, y, w, h);
  }
 
 
}

Das Panel dann einfach deinem Frame hinzufügen. Wenn du das Quadrat ausfüllen willst nimm fillRect() und wenn du eine anderen Farbe als schwarz haben willst kannst du das per g.setColor(Color.RED) z.B tun.
 
Java:
@SuppressWarnings("serial")
public class Würfel extends JFrame {

	private JButton button;
	private JPanel panel;
	private Quadrat quadrat = new Quadrat();
	
	public Würfel() {
		super("Würfel");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        init();
        pack();
        setLocationRelativeTo(null);
        setResizable(false);
        setVisible(true);
	}
	
	private void init() {
		panel = new JPanel();
		button = new JButton("Würfeln");
		panel.add(quadrat);
		panel.add(button);
		getContentPane().add(panel);
		
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
	                panel.repaint();
	            }
	        });
	}
   
}

Und

Java:
@SuppressWarnings("serial")
public class Quadrat extends JPanel{
 
      @Override
  public void paintComponent( Graphics g )
  {    
    setSize(150,150);	  
    int x1 = (int) (Math.random() * 255 + 1);
    int x2 = (int) (Math.random() * 255 + 1);
    int x3 = (int) (Math.random() * 255 + 1);
    g.drawRect(10,10,100,100);
    g.setColor(new Color(x1,x2,x3));
    g.fillRect(10,10,100,100);
  }
 
 
}


Es wird angezeigt, aber das Quadrat ist unter dem Button und an den Seiten abgeschnitten.
Wie kann ich es ganz anzeigen lassen und über den Button?
 
Zuletzt bearbeitet:
quadrat.setPreferredSize(new Dimension(150, 150));

und zwar nur einmal vor setVisible(true); nicht bei jedem painten,
erscheint dann im Moment auch nicht übereinander, dazu das passende Layout wählen, z.B. FlowLayout,

zu allem immer Lehrbücher lesen und Beispiele anschauen, nicht nur andere fragen..,
das sind Standardthemen zu denen es genauestens sortiert ausführlichste passende Kapitel gibt,
mit Beispielen und allen drum und dran
 
Danke.


Mit FlowLayout (center) bekomme ich die beiden Komponenten nur nebeneinender.
Wie kriege ich den Button unter das Panel vom Quadraht?


// Habe es schon hinbekommen


Wie kriege ich ein Label in das Quadraht?
 
Wenn du nur was ausgeben lassen willst kannst du das mit g.drawString() machen ansonsten eben das Label auf deinen Frame packen.
 

Zurück
Oben