Hallo Leute,
Ich habe fogendes Programm erstellt.
Ich habe einen JTree dem ich Objekte hinzufüge.
Allerdings funktioniert das hinzufügen wiefolgt.
Ich habe einen Button "Add".
Beim Klick erscheint rechts neben dem Tree ein "Auswahl" Panel, wo ich auswählen kann ob ich einen "Kunden" oder einen "Mitarbeiter" anlegen möchte. Je nachdem erscheint das zugehörige Panel in der ich den Name, Vorname des Kunden bzw. Mitarbeiter angeben kann. Sobald ich die Angaben gemacht habe und das Panel verlassen habe,
erzeuge ich ein Objekt Kunde bzw. Mitarbeiter und fülle es mit den Werten Name/Vorname die ich zuvor im panel eingegeben habe. Dann füge ich dieses Objekt dem Tree hinzu.
Frage:
1. Im Auswahl Panel treffe ich die Auswahl über RadioButtons. Ich Programm weis ich nicht, wie ich Abfragen kann welches RadioButton geklickt wurde (Kunde/mitarbeiter). Wie kann ich das machen??
2. Ist das Konzept, wie ich das ganze gemacht habe ok???? Ich habe im Forum gelesen, dass es ne Möglichkeit gibt, anstatt mit Panels auch mit JDialogs arbeiten kann.
Würde mich über Änderungsvorschläge freuen.
Anmerkung: Die Klassen sing keine konkrete Realisierungen. Ich habe die Funktionalität soweit reduziert, dass nur das konzept erläutert wird.
Ich habe fogendes Programm erstellt.
Ich habe einen JTree dem ich Objekte hinzufüge.
Allerdings funktioniert das hinzufügen wiefolgt.
Ich habe einen Button "Add".
Beim Klick erscheint rechts neben dem Tree ein "Auswahl" Panel, wo ich auswählen kann ob ich einen "Kunden" oder einen "Mitarbeiter" anlegen möchte. Je nachdem erscheint das zugehörige Panel in der ich den Name, Vorname des Kunden bzw. Mitarbeiter angeben kann. Sobald ich die Angaben gemacht habe und das Panel verlassen habe,
erzeuge ich ein Objekt Kunde bzw. Mitarbeiter und fülle es mit den Werten Name/Vorname die ich zuvor im panel eingegeben habe. Dann füge ich dieses Objekt dem Tree hinzu.
Frage:
1. Im Auswahl Panel treffe ich die Auswahl über RadioButtons. Ich Programm weis ich nicht, wie ich Abfragen kann welches RadioButton geklickt wurde (Kunde/mitarbeiter). Wie kann ich das machen??
2. Ist das Konzept, wie ich das ganze gemacht habe ok???? Ich habe im Forum gelesen, dass es ne Möglichkeit gibt, anstatt mit Panels auch mit JDialogs arbeiten kann.
Würde mich über Änderungsvorschläge freuen.
Anmerkung: Die Klassen sing keine konkrete Realisierungen. Ich habe die Funktionalität soweit reduziert, dass nur das konzept erläutert wird.
Code:
public class Kunde {
public String name;
public String vorname;
public String toString(){
return this.name;
}
}
Code:
public class Gui extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private static final String ADD_COMMAND = "add"; // @jve:decl-index=0:
private MessageTree treePanel;
CardLayout cl = new CardLayout();
JPanel panel = new JPanel(cl);
MitarbeiterAnlegen mitarbeiterAnlegen;
KundenAnlegen kundenAnlegen;
Auswahl auswahl;
/**
* This is the default constructor
*/
public Gui() {
JPanel blankPanel = new JPanel();
blankPanel.setBorder(BorderFactory.createTitledBorder("Blank Panel"));
auswahl = new Auswahl();
auswahl.btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Wenn Radiobutton Kunde ausgewählt? Dann cl.show(panel, "2");
//Wenn Radiobutton Mitarbeiter ausgewählt? Dann cl.show(panel, "3");
}
});
this.mitarbeiterAnlegen = new MitarbeiterAnlegen();
this.mitarbeiterAnlegen.button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Mitarbeiter mitarbeiter = new Mitarbeiter();
mitarbeiter.name = mitarbeiterAnlegen.getName();
mitarbeiter.vorname = mitarbeiterAnlegen.getName();
treePanel.addObject(mitarbeiter);
cl.show(panel,"0"); //Startseite
}
});
this.kundenAnlegen = new KundenAnlegen();
this.kundenAnlegen.getButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Kunde kunde = new Kunde();
kunde.name = kundenAnlegen.getName();
kunde.vorname = kundenAnlegen.getName();
treePanel.addObject(kunde);
cl.show(panel,"0"); //Startseite
}
});
panel.add(mitarbeiterAnlegen,"3");
panel.add(kundenAnlegen,"2");
panel.add(auswahl,"1");
panel.add(blankPanel, "0");
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
treePanel = new MessageTree();
treePanel.setPreferredSize(new Dimension(200, 150));
JButton addButton = new JButton("add");
addButton.setActionCommand(ADD_COMMAND);
addButton.addActionListener(this);
JToolBar toolbar = new JToolBar();
toolbar.add(addButton);
add(toolbar, BorderLayout.NORTH);
cl.show(panel, "0");
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (ADD_COMMAND.equals(command)) {
//Add button clicked
cl.show(panel,"1"); // Auswahl Panel öffnen
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Automatisch erstellter Methoden-Stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Gui thisClass = new Gui();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
}
Code:
public class Auswahl extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private static final String CONTINUE_CMD = "continue"; // @jve:decl-index=0:
public JRadioButton rbtn1, rbtn2;
public JButton btn;
public ButtonGroup group;
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (CONTINUE_CMD.equals(command)) {
}
}
/**
* This is the default constructor
*/
public Auswahl() {
setBorder(BorderFactory.createTitledBorder("Auswahl"));
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
rbtn1 = new JRadioButton("Name");
gbc.anchor = GridBagConstraints.LINE_START;
add(rbtn1, gbc);
rbtn2 = new JRadioButton("Vorname");
gbc.gridy = 1;
add(rbtn2, gbc);
group = new ButtonGroup();
group.add(rbtn1);
group.add(rbtn2);
btn = new JButton("Continue");
btn.setActionCommand(CONTINUE_CMD);
btn.addActionListener(this);
gbc.gridy = 4;
gbc.anchor = GridBagConstraints.SOUTH;
gbc.insets = new Insets(0, 0, 10, 0);
gbc.weighty = 1.0;
add(btn, gbc);
}
}
Code:
public class MitarbeiterAnlegen extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
public JButton button;
public JTextField name;
public JTextField vorname;
public void actionPerformed(ActionEvent arg0) {
}
/**
* This is the default constructor
*/
public MitarbeiterAnlegen() {
setBorder(BorderFactory.createTitledBorder("MitarbeiterPanel"));
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.LINE_START;
gbc.insets = new Insets(2, 2, 2, 2);
gbc.gridx = 0;
gbc.gridy = 0;
add(new JLabel("Name"),gbc);
this.name = new JTextField(20);
gbc.gridx = 1;
gbc.gridy = 0;
add(this.name,gbc);
gbc.gridx = 0;
gbc.gridy = 2;
add(new JLabel("Vorname"),gbc);
gbc.gridx = 1;
gbc.gridy = 2;
this.vorname = new JTextField(20);
add(this.vorname,gbc);
this.button = new JButton("Ok");
this.button.setEnabled(false);
gbc.gridy = 4;
gbc.anchor = GridBagConstraints.SOUTH;
gbc.insets = new Insets(0, 0, 10, 0);
gbc.weighty = 1.0;
add(button, gbc);
}
}