Hvordan blander man Grafik og Swing componenter i Java.
Graphics objektet er jo ikke en component, man kan tilføje til et Panel eller Pane, så hvordan går man det hvis man gerne vil have et panel med grafik og et med Swing componenter i samme frame?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
public JFrame() { initComponents(); g = this.getGraphics(); g2 = (java.awt.Graphics2D)panel.getGraphics(); rect = new Rectangle(25,25,25,25); g2.draw(rect); }
private void initComponents() { panel = new javax.swing.JPanel();
// Det er vigtigt at du kalder show() inden du initierer dit // graphics object, ellers får du sikkert en nullpointerException show();
g = panel.getGraphics(); g2 = (java.awt.Graphics2D)g; rect = new Rectangle(100,100,100,100); g2.draw(rect); repaint();
private void tegn(java.awt.event.MouseEvent evt) { // Det er ligeledes vigtigt at får gentegnet din Frame før // dit rektangel super.paintComponents(g); rect.setLocation(evt.getX(), evt.getY()); g2.draw(rect); }
Alle SWING komponenter nedarver fra JComponent og alle JComponents har en paint metode...
public class myPanel extends JPanel { public void paint(Graphics g) { g.setColor(Color.WHITE); g.drawLine(0, 0, this.getWidth(), this.getHeight()); // osv...
/* hvis du vil kalde paint metoden på super klassen: super.paint(g);
dette objekt har flere advanceret metoder: Graphics2D g2 = (Graphics2D)g; g2.setColor(Color.WHITE); g2.drawLine(0, 0, this.getWidth(), this.getHeight()); */ } }
JPanel b_panel = new JPanel(); b_panel.add(new MyPanel());
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.