Ich habe ein Programm, wo die Benutzer Werte in JTextFields eingeben und dann eine Schaltfläche drücken, die ihre Werte in eine SQL-Datenbank sendet.JComboBox und JTextFields funktionieren nicht mit equals()
JComboBox<String> dropRG = new JComboBox<String>();
dropRG.addItem("Children's Fiction");
dropRG.addItem("Fantasy");
dropRG.addItem("Horror");
dropRG.setEditable(true);
dropRG.setBounds(425, 210, 180, 27);
panel_1.add(dropRG);
JButton btnSubmit = new JButton("Submit");
btnSubmit.addActionListener(new ActionListener() {
String afValue = AF.getText().trim();
String alValue = AL.getText().trim();
String titleValue = titleBook.getText().trim();
String dropRGValue = dropRG.getSelectedItem().toString();
public void actionPerformed(ActionEvent e) {
if (afValue.equals(null) || alValue.equals(null) || titleValue.equals(null) || dropRGValue.equals(null)){
JOptionPane.showMessageDialog(null, "Can't have empty fields!");
}
else {
//SQL code
JOptionPane.showMessageDialog(null, "Entry Saved!");
}
}
});
btnSubmit.setBounds(270, 315, 117, 29);
panel_1.add(btnSubmit);
Ich habe drei JTextFields für die Werte und eine editierbare JComboBox für die eingefügten Werte. Ich hatte den oben genannten Code in einem try/catch-Block, und es würde keine Ausnahme auslösen, und der obige Code funktionierte für mich in der Vergangenheit gut (aber aufgrund unvorhergesehener Umstände musste ich das Programm komplett neu erstellen von Grund auf), und jetzt ist es nicht, obwohl der Code der gleiche ist. Das Ergebnis des Codes endet immer mit "Entry Saved"! sogar mit leeren Feldern (und einer leeren JComboBox, da sie editierbar ist).
Auch erwähnenswert, wenn die JComboBox nicht editierbar war und die dropRgValue.equals() nicht mehr da war, der Code funktionierte immer noch nicht.
Ich bin ein Amateur-Programmierer und ich habe etwas wichtiges verpasst, aber das scheint etwas zu einfach zu sein, um nicht zu trainieren.
Die String-Werte können nicht null sein, da sonst der '.trim()' Anruf eine Nullpointer werfen würde. Eine leere Zeichenfolge "" "unterscheidet sich von einer Zeichenfolge, die" null "ist. Beachten Sie auch, dass der obige Code nie funktioniert hätte und die else-Anweisung immer nur ausgeführt oder mit einer NPE beendet wurde. Du musst es also geändert haben, als du es neu erstellt hast. –
Ich glaube, Sie dürfen keinen Nullwert haben, aber leer. also schau auch leer – soorapadman