jak narysować piksel/kwadrat

0

witam

właśnie zaczynam Jave.
nie mogę dojść jak narysować mały kwadrat w ramce.

czy możecie mi pomóć i dopisać kawałek kodu do tego poniżej:

import javax.swing.*;
import java.awt.*;

public class swing {

	public static void main(String[] args) {
		JFrame frame = new JFrame("ramka");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(new BorderLayout());
		frame.setSize(400,400);
		frame.setVisible(true);
	}

}

dzięki za pomoc.

0

JFrame, w nim JPanel, na nim narysowany kwadrat

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;


public class Kwadrat extends JFrame {
	Panelek p;
	public Kwadrat(){
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        setSize(400,400);
        setLocation(getToolkit().getScreenSize().width/2 - this.getWidth()/2, 
        getToolkit().getScreenSize().height/2 - this.getHeight()/2);// zupelnie na srodku
        p = new Panelek();
        p.setBorder(new LineBorder (Color.black, 1, true));
        p.setBounds(50, 50, 200, 200);
        getContentPane().add(p);
        
	}
	class Panelek extends JPanel{
		public void paint(Graphics g){
			super.paint(g);
			((Graphics2D) g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,
					RenderingHints.VALUE_ANTIALIAS_ON); //antyaliasing ;-]			
			g.fillRect(50, 50, 40, 40);
		}
	}
	public static void main(String[] args) {
		new Kwadrat().setVisible(true);
	}
}
0

dzięki.
a dałoby się to jakoś prościej zapisać, bez tworzenia panelu ?

0

daloby sie ale tak jest lepiej napisane

pozdrawiam

0

to jest prościej, można ewentualnie stworzyć klasę rozszerzającą JPanel nie jako klasę wewnętrzną, ale jako 'zwykłą' osobną, ale jeśli chcesz tego panelu używać tylko w tym JFrame'ie to jest to dobre rozwiązanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1