Hallo,
da ich derzeitig dabei bin Java zu lernen, schreibe ich mir immer wieder kleine Trainingsprogramme. Zugegeben, die sind sinnlos bzw machen nix großartiges, aber man lernt draus
Jetz hab ich aber ein Problem:
Sachverhalt:
Ich bin gerade bei der GUI Programmierung. Jetzt wollte ich einen Button eine Action zuweisen, die einen weiteren Button erstellt. Je öfter man draufklickt, desto mehr Buttons kommen
Um die Buttons ansprechen bzw erzeugen zu können, speicher ich die Referenzen in einem Vector.
Problem:
Es wird kein Button erzeugt :lol:
Hier mal mein Quellcode.
Wär cool, wenn mir einer helfen kann oder geht das nicht, so einen Button zu erzeugen?
Greetz
da ich derzeitig dabei bin Java zu lernen, schreibe ich mir immer wieder kleine Trainingsprogramme. Zugegeben, die sind sinnlos bzw machen nix großartiges, aber man lernt draus
Jetz hab ich aber ein Problem:
Sachverhalt:
Ich bin gerade bei der GUI Programmierung. Jetzt wollte ich einen Button eine Action zuweisen, die einen weiteren Button erstellt. Je öfter man draufklickt, desto mehr Buttons kommen
Um die Buttons ansprechen bzw erzeugen zu können, speicher ich die Referenzen in einem Vector.
Problem:
Es wird kein Button erzeugt :lol:
Hier mal mein Quellcode.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.* ;
public class TextEg2 extends JFrame implements ActionListener
{
JTextField text;
JLabel lbl ;
JButton btn1,btn2,btn3,btn4 ;
Vector buttons = new Vector(20,5);
int zaehler = 0;
Object temp;
public TextEg2()
{
text = new JTextField( 15 ) ;
//Initialisiert ein neues Textfeld mit einer Zeichenbreite vin 15
lbl = new JLabel ( "Enter Your Name:" );
//Initialisiert ein neues Label
btn1 = new JButton( "Hintergrund in Rot ändern" );
btn2 = new JButton( "Konsolenausgabe erzeugen" );
btn3 = new JButton( "Neuen Button erstellen" );
btn4 = new JButton( "Den Hintergrund wieder in ein schönes Weiß verwandeln" );
//Initialisiert die Buttons
getContentPane().setLayout( new FlowLayout() );
//Setzt den FlowLayout LayoutManager
getContentPane().add( lbl );
getContentPane().add( text );
getContentPane().add( btn1 );
getContentPane().add( btn2 );
getContentPane().add( btn3 );
getContentPane().add( btn4 );
//Fügt die Buttons, das Label und das Textfeld dem Frameobjekt an
btn1.addActionListener( this );
btn2.addActionListener( this );
btn3.addActionListener( this );
btn4.addActionListener( this );
//Jeder Button registriert einen ActionListener
btn1.setActionCommand( "rot" );
btn2.setActionCommand( "ausgabe" );
btn3.setActionCommand( "neuerBtn" );
btn4.setActionCommand( "grau" );
//Setzt das "Actionskommando" für den jeweiligen Button
}
public static void main ( String[] args )
{
TextEg2 teg = new TextEg2() ;
WindowQuitter wquit = new WindowQuitter();
teg.addWindowListener( wquit );
teg.setSize ( 500, 500 );
teg.setVisible( true );
}
public void actionPerformed (ActionEvent evt)
{
if( evt.getActionCommand().equals( "rot" ) )
{
getContentPane().setBackground( Color.red );
repaint();
}
if( evt.getActionCommand().equals( "grau" ) )
{
getContentPane().setBackground( Color.white );
repaint();
}
if( evt.getActionCommand().equals( "ausgabe" ) )
{
System.out.println( "Hallo," );
System.out.println( "hier bin ich. Die AUSGABE :)" );
}
if( evt.getActionCommand().equals( "neuerBtn" ) )
{
buttons.addElement( new JButton( "Button Nr.: " +zaehler ) );
temp = buttons.elementAt(zaehler);
getContentPane().add( ((JButton)temp) );
zaehler++;
repaint();
}
}
}
Wär cool, wenn mir einer helfen kann oder geht das nicht, so einen Button zu erzeugen?
Greetz