Hallo,
ich möchte auf die Auswahl in eines JRadioButtons reagieren, indem ich bestimmte Textfelder deaktiviere. Wie macht man das?
So jedenfalls nicht. Wie kann man auf die Textfelder saving2, saving4, saving6 und saving8 außerhalb des Settings() zugreifen?
ich möchte auf die Auswahl in eines JRadioButtons reagieren, indem ich bestimmte Textfelder deaktiviere. Wie macht man das?
Code:
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
class Settings
extends JDialog
implements ActionListener
{
private static final long serialVersionUID = 1L;
public Settings()
{
final JDialog SettingsFrame = new JDialog(this, "Einstellungen", true);
SettingsFrame.pack();
SettingsFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Settings.png")));
SettingsFrame.setSize(420, 320);
SettingsFrame.setResizable(false);
SettingsFrame.setLocationRelativeTo(null);
JTabbedPane tabbedpane = new JTabbedPane();
JPanel general = new JPanel();
general.setLayout(null);
JCheckBox general0 = new JCheckBox("Letzte Sitzung beim starten automatisch laden");
JCheckBox general1 = new JCheckBox("Sitzung beim verlassen automatisch speichern");
JCheckBox general2 = new JCheckBox("Vor dem Beenden nachfragen");
JCheckBox general3 = new JCheckBox("Daten alle zehn Minuten automatisch speichern");
JCheckBox general4 = new JCheckBox("Nicht gespeicherte Daten beim beenden speichern");
general0.setBounds(10, 10, 375, 25);
general1.setBounds(10, 50, 375, 25);
general2.setBounds(10, 90, 375, 25);
general3.setBounds(10, 130, 375, 25);
general4.setBounds(10, 170, 375, 25);
general.add(general0);
general.add(general1);
general.add(general2);
general.add(general3);
general.add(general4);
tabbedpane.addTab("Allgemeines", general);
JPanel design = new JPanel();
design.setLayout(null);
final String[] designs = {
"Systemdesign", "Metal", "Motif"
};
JLabel design0 = new JLabel();
JComboBox design1 = new JComboBox(designs);
JLabel design2 = new JLabel();
design0.setBounds(10, 10, 375, 25);
design1.setBounds(10, 50, 375, 25);
design2.setBounds(10, 90, 375, 80);
design0.setText("<html>Bitte wählen Sie das gewünschte Design aus:</html>");
design2.setText("<html>Beachten Sie dabei auch, dass das gewählte Design die Geschwindigkeit von MenRecord beeinflusst. Das Systemdesign verlangt viel Leistung; Metal und Motif sind hingegen recht schlank.</html>");
design.add(design0);
design.add(design1);
design.add(design2);
tabbedpane.addTab("Design", design);
JPanel saving = new JPanel();
saving.setLayout(null);
ButtonGroup saving0 = new ButtonGroup();
JRadioButton saving0sub0 = new JRadioButton("In MRF-Dateien speichern", true);
JRadioButton saving0sub1 = new JRadioButton("In MySQL-Datenbank speichern");
JLabel saving1 = new JLabel("Host:");
JTextField saving2 = new JTextField();
JLabel saving3 = new JLabel("Datenbank:");
JTextField saving4 = new JTextField();
JLabel saving5 = new JLabel("Benutzername:");
JTextField saving6 = new JTextField();
JLabel saving7 = new JLabel("Kennwort:");
JTextField saving8 = new JPasswordField();
saving0sub0.setBounds(10, 10, 375, 25);
saving0sub1.setBounds(10, 50, 375, 25);
saving1.setBounds(30, 90, 100, 25);
saving2.setBounds(140, 90, 200, 25);
saving3.setBounds(30, 120, 100, 25);
saving4.setBounds(140, 120, 200, 25);
saving5.setBounds(30, 150, 100, 25);
saving6.setBounds(140, 150, 200, 25);
saving7.setBounds(30, 180, 100, 25);
saving8.setBounds(140, 180, 200, 25);
saving0.add(saving0sub0);
saving0.add(saving0sub1);
saving.add(saving0sub0);
saving.add(saving0sub1);
saving.add(saving1);
saving.add(saving2);
saving.add(saving3);
saving.add(saving4);
saving.add(saving5);
saving.add(saving6);
saving.add(saving7);
saving.add(saving8);
saving2.setEnabled(false);
saving4.setEnabled(false);
saving6.setEnabled(false);
saving8.setEnabled(false);
saving0sub0.addActionListener(this);
saving0sub1.addActionListener(this);
tabbedpane.addTab("Speichern", saving);
JPanel features = new JPanel();
features.setLayout(null);
tabbedpane.addTab("Spezialfunktionen", features);
SettingsFrame.add(tabbedpane, BorderLayout.CENTER);
JButton close = new JButton(new AbstractAction("Schließen") {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent event)
{
SettingsFrame.setVisible(false);
SettingsFrame.dispose();
}
});
SettingsFrame.add(close, BorderLayout.SOUTH);
SettingsFrame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
String command = event.getActionCommand();
if(command == "In MRF Dateien speichern:") {
saving2.setEnabled(false);
saving4.setEnabled(false);
saving6.setEnabled(false);
saving8.setEnabled(false);
} else if(command == "In MySQL-Datenbank speichern:") {
saving2.setEnabled(true);
saving4.setEnabled(true);
saving6.setEnabled(true);
saving8.setEnabled(true);
}
}
}
So jedenfalls nicht. Wie kann man auf die Textfelder saving2, saving4, saving6 und saving8 außerhalb des Settings() zugreifen?