Hi,
ich bin seit einiger Zeit schon daran mit NetBeans eine GUI zu schreiben welche ein paar Rechenoperationen graphisch darstellen soll.
Dies hat bis jetzt auch ganz ok geklappt.
Hier erstmal der Code:
Das Programm besteht aus drei RadioButtons, den ich jeweils drei Textfelder zugeordnet habe, welche jeweils aktiviert werden sollen wenn ein Radio Button selected wurde. Das klappt beim ersten ja auch sehr gut.
Nur bei den anderen beiden RadioButtons wird weder eine Beschriftung noch ein Textfeld angezeigt, obwohl sie wie man im Code denke ich gut sehen kann, definiert sind. Nun dachte ich dass, das vielleicht mit dem Visible Status zusammen hängen kann, aber den ersten RadioButton habe ich ja auch nicht extra mit setVisible(true) gesetzt, und trotzdem wird dort alles korrekt angezeigt.
Desweiten ist mir aufgefallen, das wenn ich zum Beispiel ein JLabel hinzufüge, überhaupt nichts sich in der Benutzeroberfläche verändert.
Hm, der Debugger zeigt mir auch keine Fehler an.
Außerdem habe ich noch ne Frage: Warum soll man keine GUI-Builder nehmen zum erstellen von solchen Oberflächen? (habe ich hier einige mal gelesen)
Danke für eure Hilfe
Nachtrag: In Eclipse klappt der Code wunderbar, scheint also an NetBeans zu liegen (vllt. ein Bug?). Aber trotzdem möchte ich mit NetBeans weiterarbeiten da mir der DesignModus so gut gefällt. Es wäre also nicht schlecht wenn ihr ne Lösung hättet
ich bin seit einiger Zeit schon daran mit NetBeans eine GUI zu schreiben welche ein paar Rechenoperationen graphisch darstellen soll.
Dies hat bis jetzt auch ganz ok geklappt.
Hier erstmal der Code:
Code:
import javax.swing.JTextField;
/*
* mathprac.java
*
* Created on 30. Mai 2007, 14:03
*/
/**
*
* @author Ger
*/
public class mathprac extends javax.swing.JFrame {
/** Creates new form mathprac */
public mathprac() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
buttonGroup2 = new javax.swing.ButtonGroup();
jRadioButton2 = new javax.swing.JRadioButton();
jRadioButton3 = new javax.swing.JRadioButton();
jLabel1 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jRadioButton1 = new javax.swing.JRadioButton();
jSeparator1 = new javax.swing.JSeparator();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jTextField6 = new javax.swing.JTextField();
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Rechner");
buttonGroup2.add(jRadioButton2);
jRadioButton2.setText("Addition von Intervallen");
jRadioButton2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
jRadioButton2.setMargin(new java.awt.Insets(0, 0, 0, 0));
jRadioButton2.setOpaque(false);
jRadioButton2.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
jRadioButton2StateChanged(evt);
}
});
getContentPane().add(jRadioButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 160, -1, -1));
buttonGroup2.add(jRadioButton3);
jRadioButton3.setText("jRadioButton3");
jRadioButton3.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
jRadioButton3.setMargin(new java.awt.Insets(0, 0, 0, 0));
getContentPane().add(jRadioButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 200, -1, -1));
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14));
jLabel1.setText("Was m\u00f6chten Sie machen?");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 60, -1, -1));
jTextField1.setBackground(java.awt.Color.white);
jTextField1.setEditable(false);
jTextField1.setText("Seite a");
jTextField1.setEnabled(false);
getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 110, -1, -1));
jTextField1.getAccessibleContext().setAccessibleName("");
jTextField2.setText("Seite b");
jTextField2.setEnabled(false);
getContentPane().add(jTextField2, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 110, -1, -1));
jTextField2.getAccessibleContext().setAccessibleName("");
jTextField3.setBackground(java.awt.Color.white);
jTextField3.setEditable(false);
jTextField3.setText("Ergebnis");
jTextField3.setEnabled(false);
getContentPane().add(jTextField3, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 110, -1, -1));
jTextField3.getAccessibleContext().setAccessibleName("");
jRadioButton1.setBackground(java.awt.Color.white);
buttonGroup2.add(jRadioButton1);
jRadioButton1.setText("Fl\u00e4chenberechnung eines Rechtecks");
jRadioButton1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
jRadioButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
jRadioButton1.setOpaque(false);
jRadioButton1.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
jRadioButton1StateChanged(evt);
}
});
getContentPane().add(jRadioButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 110, -1, -1));
jRadioButton1.getAccessibleContext().setAccessibleName("");
getContentPane().add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 530, 10));
jTextField4.setEditable(false);
jTextField4.setText("Intervallbeginn");
jTextField4.setEnabled(false);
getContentPane().add(jTextField4, new org.netbeans.lib.awtextra.AbsoluteConstraints(250, 160, -1, -1));
jTextField5.setEditable(false);
jTextField5.setText("Intervallende");
jTextField5.setEnabled(false);
getContentPane().add(jTextField5, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 160, -1, -1));
jButton1.setText("L\u00f6sung");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 270, -1, -1));
jTextField6.setEditable(false);
jTextField6.setText("Ergebnis");
jTextField6.setEnabled(false);
getContentPane().add(jTextField6, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 160, -1, -1));
pack();
}// </editor-fold>
private void jRadioButton2StateChanged(javax.swing.event.ChangeEvent evt) {
if (jRadioButton2.isSelected())
{
jTextField4.setEditable(true);
jTextField4.setEnabled(true);
jTextField5.setEditable(true);
jTextField5.setEnabled(true);
}
else
{
jTextField4.setEditable(false);
jTextField4.setEnabled(false);
jTextField5.setEditable(false);
jTextField5.setEnabled(false);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (jRadioButton1.isSelected())
{
String t1 = jTextField1.getText();
String t2 = jTextField2.getText();
Double a = Double.parseDouble(t1);
Double b = Double.parseDouble(t2);
Double c = a*b;
jTextField3.setEnabled(true);
jTextField3.setText(String.valueOf(c));
}
if (jRadioButton2.isSelected())
{
System.out.println("hallo");
}
}
private void jRadioButton1StateChanged(javax.swing.event.ChangeEvent evt) {
if (jRadioButton1.isSelected())
{
jTextField1.setEditable(true);
jTextField1.setEnabled(true);
jTextField2.setEditable(true);
jTextField2.setEnabled(true);
}
else
{
jTextField1.setEditable(false);
jTextField1.setEnabled(false);
jTextField2.setEditable(false);
jTextField2.setEnabled(false);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new mathprac().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroup2;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JRadioButton jRadioButton3;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
Das Programm besteht aus drei RadioButtons, den ich jeweils drei Textfelder zugeordnet habe, welche jeweils aktiviert werden sollen wenn ein Radio Button selected wurde. Das klappt beim ersten ja auch sehr gut.
Nur bei den anderen beiden RadioButtons wird weder eine Beschriftung noch ein Textfeld angezeigt, obwohl sie wie man im Code denke ich gut sehen kann, definiert sind. Nun dachte ich dass, das vielleicht mit dem Visible Status zusammen hängen kann, aber den ersten RadioButton habe ich ja auch nicht extra mit setVisible(true) gesetzt, und trotzdem wird dort alles korrekt angezeigt.
Desweiten ist mir aufgefallen, das wenn ich zum Beispiel ein JLabel hinzufüge, überhaupt nichts sich in der Benutzeroberfläche verändert.
Hm, der Debugger zeigt mir auch keine Fehler an.
Außerdem habe ich noch ne Frage: Warum soll man keine GUI-Builder nehmen zum erstellen von solchen Oberflächen? (habe ich hier einige mal gelesen)
Danke für eure Hilfe
Nachtrag: In Eclipse klappt der Code wunderbar, scheint also an NetBeans zu liegen (vllt. ein Bug?). Aber trotzdem möchte ich mit NetBeans weiterarbeiten da mir der DesignModus so gut gefällt. Es wäre also nicht schlecht wenn ihr ne Lösung hättet