Hilfe, wer kann mir paint(),update,repaint erklären

  • Hallo, bin Java Neueinsteiger und habe so meine Schwierigkeiten. Ich habe JFrame, in dem ich meine Buttons etc plaziere (Swing). Diese plaziere ich zuerst auf dem Container und zeige sie dann an. Wenn man dann auf den Button zeichnen drückt, soll er im Frame unten ein Rechteck zeichnen, doch leider bleibt das alte Rechteck immer erhalten.

    Ich poste mal den Code . Kann mir dies wer erklären, ich möchte es verstehen.....
    Wär echt toll, Reinhard

    public class Swingversuch extends JFrame implements ActionListener {

    private JLabel hausnummer,laenge,breite,hoehe;
    private JTextField text1,text2,text3,text4;
    private JComboBox choice;
    private ButtonGroup zustand;
    private JRadioButton ren,nichtren;
    private JButton zeichne;
    private JTextArea schreibe;


    public Swingversuch (){
    super("Swingversuch");
    setSize(500,500);
    Container c = getContentPane();
    c.setLayout(null);
    hausnummer=new JLabel("Nummer");
    hausnummer.setBounds(150,20,80,30);
    c.add(hausnummer);
    laenge= new JLabel("Laenge");
    laenge.setBounds(230,20,80,30);
    c.add(laenge);
    breite = new JLabel("Breite");
    breite.setBounds(310,20,80,30);
    c.add(breite);
    hoehe = new JLabel("Hoehe");
    hoehe.setBounds(410,20,80,30);
    c.add(hoehe);
    text1= new JTextField();
    text1.setBounds(150,50,50,20);
    c.add(text1);
    text2 = new JTextField();
    text2.setBounds(230,50,50,20);
    c.add(text2);
    text3 = new JTextField();
    text3.setBounds(310,50,50,20);
    c.add(text3);
    text4=new JTextField();
    text4.setBounds(410,50,50,20);
    c.add(text4);
    choice = new JComboBox();
    choice.addItem( "Haus" );
    choice.addItem( "Reihenhaus" );
    choice.setBounds(30,40,100,30);
    c.add(choice);
    zustand = new ButtonGroup();
    ren = new JRadioButton("Renovierungsbeduerftig",true);
    nichtren= new JRadioButton("Nicht Renovierungsbeduerftig");
    ren.setBounds(100,80,160,20);
    nichtren.setBounds(300,80,200,20);
    zustand.add(ren);
    zustand.add(nichtren);
    c.add(ren);
    c.add(nichtren);
    schreibe = new JTextArea(100,60);
    schreibe.setBounds(200,120,250,50);
    c.add(schreibe);
    zeichne = new JButton("Zeichnen");
    zeichne.addActionListener(this);
    zeichne.setBounds(30,120,100,30);
    c.add(zeichne);
    c.setBackground(Color.yellow);
    }

    public void update (Graphics g) {
    paint(g);

    }
    public void actionPerformed(ActionEvent e) {
    int num,lae,index,bre,hoe;

    if (e.getSource()==zeichne) {

    schreibe.setText("");
    num=Integer.parseInt(text1.getText());
    lae=Integer.parseInt(text2.getText());
    bre=Integer.parseInt(text3.getText());
    hoe= Integer.parseInt(text4.getText());
    index =choice.getSelectedIndex();
    if (index==0) {
    Haus a = new Haus(num,bre,lae,hoe,ren.isSelected());
    schreibe.append(a.bauen());
    Graphics g = getGraphics();
    g.drawRect(250,250,bre,lae)
    }
    else {
    Reihenhaus b = new Reihenhaus(num,bre,lae,hoe,ren.isSelected());
    schreibe.append(b.bauen());

    }

    }
    }


    public static void main (String[] args) {

    Swingversuch f = new Swingversuch();
    f.setLocation(10,10);
    f.setVisible(true);

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!