Hallo zusammen ich habe wieder mal ein Problem.=)
Ich habe ein Frame auf dem zwei JPanel liegen.
Dort sind per GridBagLayout jeweils 2 Label (Straße und Name) eingefügt.
Weiter unten ein Button.
Ziel ist es, dass man auf den Button „Neu“- klickt und dann dynamisch jeweils ein Textfeld für das Panel „Name“ und eines für das Panel „Straße“ erscheint.
Im moment klappt es nur, wenn ich in die Positionierung eine for- Schleife setze.
Das will ich aber nicht da es ja dynamisch sein soll.
Wenn ich es dynamisch versuche wird nichts angezeigt.
Ich hoffe ihr habt eine Idee.
Hier habe ich ein kleines KSKB.
Zur Info:
Die 6 Textfelder unter Name sind in der Positionierung mit einer for- Schleife eingefügt.
Vielen Dank im voraus.
Ich habe ein Frame auf dem zwei JPanel liegen.
Dort sind per GridBagLayout jeweils 2 Label (Straße und Name) eingefügt.
Weiter unten ein Button.
Ziel ist es, dass man auf den Button „Neu“- klickt und dann dynamisch jeweils ein Textfeld für das Panel „Name“ und eines für das Panel „Straße“ erscheint.
Im moment klappt es nur, wenn ich in die Positionierung eine for- Schleife setze.
Das will ich aber nicht da es ja dynamisch sein soll.
Wenn ich es dynamisch versuche wird nichts angezeigt.
Ich hoffe ihr habt eine Idee.
Hier habe ich ein kleines KSKB.
Zur Info:
Die 6 Textfelder unter Name sind in der Positionierung mit einer for- Schleife eingefügt.
Vielen Dank im voraus.
Java:
package project1;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MainDialog extends Frame
{
private JFrame MainFrame = new JFrame();
private JPanel MainPanel = new JPanel(new FlowLayout(FlowLayout.LEFT,5,5));
private JPanel Name =new JPanel(new FlowLayout(FlowLayout.LEFT,5,5));
private JPanel Strasse =new JPanel(new FlowLayout(FlowLayout.LEFT,5,5));
private JLabel lblName = new JLabel("<html><u><b>Name:</u></b></html>");
private JLabel lblStrasse = new JLabel("<html><u><b>Straße:</u></b></html>");
private JButton btnNew = new JButton(" NEU ");
private JTextField textField = new JTextField();
private boolean isClicked = false;
public MainDialog()
{
super();
MainFrame.setMinimumSize(new Dimension(800,600));
MainFrame.setTitle("Beispiel Programm");
//Panels initialisieren
Name.setPreferredSize(new Dimension(125,400));
Strasse.setPreferredSize(new Dimension(125,400));
//Labels initialisieren
lblName.setFont(new Font("",Font.PLAIN,14));
lblStrasse.setFont(new Font("",Font.PLAIN,14));
//Button initialisieren
btnNew.setPreferredSize(new Dimension(100,30));
btnNew.setFont(new Font("Arial",Font.BOLD,14));
btnNew.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
}
});
//Positionierung der Panel, Label und Button mit einem GridBagLayout
GridBagConstraints c = new GridBagConstraints();
GridBagConstraints gridBagConstraints;
//Hier werden die Textfelder statisch eingefügt....
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
Name.add(lblName, c);
MainPanel.add(Name,c);
for (int i = 0; i < 6; i++)
{
JTextField textField = new JTextField();
textField.setPreferredSize(new Dimension(100,20));
gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = i;
gridBagConstraints.gridy = 0;
Name.add(textField);
}
//hier sollen die Textfelder dynamisch eingefügt werden.
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 1;
c.gridy = 0;
Strasse.add(lblStrasse, c);
MainPanel.add(Strasse,c);
//Button positionierung
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 2;
c.gridy = 0;
MainPanel.add(btnNew,c);
MainFrame.add(MainPanel);
// Beenden der Applikation
MainFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
MainFrame.setVisible(true);
}
//------------------------------------------------------------------------------
// Hier wird das programm gestartet.
//------------------------------------------------------------------------------
public static void main(String[] args)
{
MainDialog mainDialog = new MainDialog();
}
}