Veröffentlicht 25. Februar 200421 j Ich habe ein Applet, in dem ich in der oberen Hälfte ein Panel mit 2 Label und 2 JComboBox anlege. In der unteren Hälfte habe ich eine anderes Panel, in dem gezeichnet werden soll. Wenn ich jedoch die paint-Methode implementiere, wird nur gezeichnet, aber die anderen Komponenten sind verschwunden. Hier mal der Code meines Applets: package fractalApplet; import java.awt.*; import java.awt.event.*; //import java.applet.*; import javax.swing.*; public class LindenmayerApplet extends JApplet { private boolean isStandalone = false; JPanel jPanel1 = new JPanel(); JPanel jPanel2 = new JPanel(); String [] kurven = {"Kochkurve", "Hilbertkurve", "Kochschneeflocke"}; JComboBox jComboBox1 = new JComboBox(kurven); String [] rekursion = {"0. Ordnung ", "1. Ordnung ", "2. Ordnung ", "3. Ordnung ", "4. Ordnung "}; JComboBox jComboBox2 = new JComboBox(rekursion); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); Lindenmayer lSys = new Lindenmayer(); //Parameterwert holen public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } //Das Applet konstruieren //Das Applet initialisieren public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Initialisierung der Komponenten private void jbInit() throws Exception { this.getContentPane().setBackground(SystemColor.control); this.setSize(new Dimension(600,500)); jPanel1.setBackground(Color.white); jLabel1.setText("Kurve"); jLabel2.setText("Rekursionstiefe"); jComboBox1.addActionListener(new LindenmayerApplet_jComboBox1_actionAdapter(this)); jComboBox2.addActionListener(new LindenmayerApplet_jComboBox2_actionAdapter(this)); this.getContentPane().add(jPanel1, BorderLayout.NORTH); jPanel1.add(jLabel1, null); jPanel1.add(jComboBox1, null); jPanel1.add(jLabel2, null); jPanel1.add(jComboBox2, null); jPanel2.setBackground(Color.white); this.getContentPane().add(jPanel2, BorderLayout.CENTER); } //Applet-Information holen public String getAppletInfo() { return "Applet-Information"; } //Parameter-Infos holen public String[][] getParameterInfo() { return null; } //Statische Initialisierung des Look & Feel static { try { //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); } catch(Exception e) { } } void jComboBox1_actionPerformed(ActionEvent e) { setAxiom(); setRule(); } void jComboBox2_actionPerformed(ActionEvent e) { setRekursion(); } public String setAxiom() { String axiom = "F"; switch(jComboBox1.getSelectedIndex()) { case '0': axiom = "F"; break; case '1': axiom = "F - F - F - F - F - F"; break; case '2': axiom = "F"; break; } return axiom; } public String setRule() { Graphics g = this.getGraphics(); g.setColor(Color.black); String rule = ""; switch(jComboBox1.getSelectedIndex()) { case '0': rule = "F-F++F-F"; break; case '1': rule = "F-F++F-F"; break; case '2': rule = "F-F++F-F"; break; } return rule; } public int setRekursion() { int ordnung = 0; switch(jComboBox2.getSelectedIndex()) { case '0': ordnung = 0; break; case '1': ordnung = 1; break; case '2': ordnung = 2; break; case '3': ordnung = 3; break; case '4': ordnung = 4; break; } return ordnung; } public void paint(Graphics g) { g = jPanel2.getGraphics(); Turtle myTurtle = new Turtle(this, g); g.setColor(Color.blue); //lSys.drawLindenmayer(myTurtle, setAxiom(), setRule(), 60.0, 400, setRekursion()); lSys.drawLindenmayer(myTurtle, "F", "F-F++F-F", 60.0, 400, 0); } } class LindenmayerApplet_jComboBox1_actionAdapter implements java.awt.event.ActionListener { LindenmayerApplet adaptee; LindenmayerApplet_jComboBox1_actionAdapter(LindenmayerApplet adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jComboBox1_actionPerformed(e); } } class LindenmayerApplet_jComboBox2_actionAdapter implements java.awt.event.ActionListener { LindenmayerApplet adaptee; LindenmayerApplet_jComboBox2_actionAdapter(LindenmayerApplet adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jComboBox1_actionPerformed(e); } } Hat irgend jemand ne Ahnung, warum nicht Komponenten und Zeichnung dargestellt werden. Was mache ich denn falsch??? mfg Sandro
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.