Zeichnung mehrere shapes auf einem JPanel
Ich entschuldige mich, wenn dies ein beliebiges element der Mehrdeutigkeit, aber ich bin irgendwie überwältigt von der Java Swing/AWT Bibliotheken (ich hasse GUI-Programmierung!).
Grundsätzlich habe ich ein sehr einfaches JFrame mit einem JPanel als solche:
public void drawGUI() {
//Instantiate the JFrame.
mainFrame = new JFrame("Ping Pong alpha1");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLayout(new BorderLayout());
//Instantiate & setup the JPanels.
btnPan = new JPanel();
canPan = new JPanel();
canPan.setLayout(new BoxLayout(canPan, BoxLayout.PAGE_AXIS));
statPan = new JPanel();
statPan.setLayout(new BoxLayout(statPan, BoxLayout.PAGE_AXIS));
//Add JPanels to mainFrame.
mainFrame.add(btnPan, BorderLayout.PAGE_END);
mainFrame.add(canPan, BorderLayout.CENTER);
mainFrame.add(statPan, BorderLayout.LINE_END);
//Instantiate & setup JMenuBar.
menuBar = new JMenuBar();
mainFrame.add(menuBar, BorderLayout.PAGE_START);
//Instantiate JMenu's & JMenuItem's.
gameMenu = new JMenu("Game");
helpMenu = new JMenu("Help");
newGame = new JMenuItem("New Game");
exit = new JMenuItem("Exit Game");
about = new JMenuItem("About");
//Add JMenuItems to their JMenu's.
gameMenu.add(newGame);
gameMenu.add(exit);
helpMenu.add(about);
menuBar.add(gameMenu);
menuBar.add(helpMenu);
//Add items to JPanels.
canvas = new PongCanvas();
mainFrame.getContentPane().add(canvas);
//Set window parameters and pack.
mainFrame.pack();
mainFrame.setSize(800, 600);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
}
Meine Frage ist; gibt es eine Möglichkeit, von der Zeichnung Komponenten dynamisch auf die canPan Objekt? d.h. ein Kreis und einige Rechtecke? Die position dieser Komponenten wird sich natürlich ändern, mit user-input.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, überschreiben Sie es
paintComponent(Graphics g)
- Methode und zeichnen Sie auf einer Kopie des übergebenenGraphics
Objekt (die Sie anschließend entsorgen).Weitere Informationen finden Sie unter 2D-Grafiken.
gibt es 2D-Grafiken tutorial (mit Beispielen) eine Antwort auf Ihre Frage, mehr über das hier und hier