Hallo!
Ich hab ein Programm geschrieben, in dem ein JRadioButton innerhalb einer BuutonGroup ausgewählt werden soll.
Leider gibt mir die selbstgeschriebene Methode isSelected(JRadioButton button) immer false zurueck, weshalb auch immer der Dialog geöffnet wird, dass man bitte einen Server auswählen sollte!
Was hab ich falsch gemacht?
Restlicher vielleicht wichtiger Code:
Ich hab ein Programm geschrieben, in dem ein JRadioButton innerhalb einer BuutonGroup ausgewählt werden soll.
Code:
ok.addActionListener(new ActionListener() {
/**
* Methode legt fest, was passiert, wenn der "OK"-Button gedrueckt wird
*/
@Override
public void actionPerformed(ActionEvent arg0) {
Process myProcess = null;
if (this.isSelected(button)){
try {
// Versuch, NinJo zu starten
myProcess = Runtime.getRuntime().exec
("rundll32 url.dll,FileProtocolHandler " +
"D:\\NinJo\\release_"+release+"\\client\\bin\\run_client.bat");
myProcess.waitFor();
// Fenster schließen
System.exit(0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
JOptionPane.showMessageDialog(AuswahlMenue.this,
"Bitte waehlen Sie einen Server aus.");
}
/**
* Diese Methode prüft, ob ein JRadioButton ausgewaehlt wurde
* @param button
* @return true, falls Button ausgewaehlt wurde
*/
private boolean isSelected(JRadioButton button) {
DefaultButtonModel model = (DefaultButtonModel)button.getModel();
System.out.println(model.getGroup().isSelected(model));
return model.getGroup().isSelected(model);
}
});
Leider gibt mir die selbstgeschriebene Methode isSelected(JRadioButton button) immer false zurueck, weshalb auch immer der Dialog geöffnet wird, dass man bitte einen Server auswählen sollte!
Was hab ich falsch gemacht?
Restlicher vielleicht wichtiger Code:
Code:
/**
* RadioButtonGroup erstellen mit Werten aus Konfigurationsdatei
*/
private void fillRadioBox() {
String[]keys=ac.getServerKeys();
Arrays.sort(keys);
for (String i:keys ) {
button = new JRadioButton (i, false);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try{
AuswahlMenue.namingAendern(button.getText());
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(
AuswahlMenue.this, "FEHLER: "+ex);
}
}
});
auswahl.add(button);
panel.add(button);
}
}
Code:
/**
* Diese Methode aendert den Eintrag in der Datei "namingservices.cfg"
* @param buttonWert (Wert, der durch JRadioButton ausgewaehlt wurde)
*/
private static void namingAendern(String buttonWert) {
// Datei "namingservices.cfg" aendern
String namingPath = "D:\\NinJo\\release_"+release+"\\naming\\namingservices.cfg";
// StringBuffer anlegen, um Originaldatei auszulesen
StringBuffer store = new StringBuffer();
int lineLength = 0;
try {
// File oeffnen
File input = new File(namingPath);
FileReader in = new FileReader(input);
BufferedReader br = new BufferedReader(in);
// Inhalt Zeile fuer Zeile auslesen und an StringBuffer anhaengen
String line = br.readLine();
while(line != null){
store.append(line+"\n");
lineLength = line.length() + 1;
// um Zeile mit Naming zu veraendern
if ( line.startsWith("NNS_")){
if (buttonWert.equals("ggsserver1") || buttonWert.equals("ggsserver0"))
store.replace(store.length()-lineLength, store.length(),
("NNS_GeoInfo_"+buttonWert+"\t GeoInfo \t GeoInfo_BSt\t"
+buttonWert+".geoinfo.de\t 60000 \n"));
else
store.replace(store.length()-lineLength, store.length(),
("NNS_GeoInfo_"+buttonWert+"\t GeoInfo \t GeoInfo_BSt\t"
+buttonWert+".awg.de\t 60000 \n"));
}
line = br.readLine();
}
br.close();
} catch(IOException ioex){
ioex.printStackTrace();
}
// StringBuffer als String uebergeben -> muss in OutputStream gepackt werden
String ergebnis=store.toString();
System.out.println(ergebnis);
OutputStream output;
try {
output = new FileOutputStream("D:\\NinJo\\release_"+release+"\\naming\\namingservices.cfg");
PrintWriter pw = new PrintWriter(output);
pw.write(ergebnis);
System.out.println("namingservices.cfg wurde geaendert");
pw.close();
output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}