2016-05-25 12 views
-1

Ich habe jtable und die Daten von mysql. In mysql habe ich eine Spalte, die für null erlaubt (es heißt 'fil'). Wenn ich die Daten auf jtable retrive, ist es in Ordnung. Dann möchte ich den Textbereich füllen und die Schaltfläche aktivieren, wenn das 'fil' nicht null ist, indem Sie auf die Zeile jtable klicken. mein Code hier:Wie bekomme ich String von JTable mit Null-Zelle

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { 
// TODO add your handling code here: 
int row = jTable1.getSelectedRow(); 
String num = jTable1.getValueAt(row, 0).toString(); 
String sub = jTable1.getValueAt(row, 1).toString(); 
String desc = jTable1.getValueAt(row, 2).toString(); 
String start = jTable1.getValueAt(row, 3).toString(); 
String end = jTable1.getValueAt(row, 4).toString(); 
String sta = jTable1.getValueAt(row, 5).toString(); 
String fil = jTable1.getValueAt(row, 6).toString(); 
if (fil != "") { 
    jButton1.setEnabled(true); 
    jButton1.setToolTipText(fil); 
} else { 
    jButton1.setEnabled(false); 
    jButton1.setToolTipText(""); 
} 
jTextArea1.setText("Subject: " + sub + "\n" + "Description: " + "\n" + desc + "\n" + "From " + start + " to " + end + "\n" + "Status: " + sta); 

jLabel3.setText(num); 

das Problem ist, wenn ich die Zeile mit null 'fil' geklickt haben, geben das Programm den Fehler:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
+0

'// TODO fügen Sie Ihre Handhabung Code hier: 'Dies fügt ** nichts ** zu unserem Verständnis des Problems und ist daher Lärm. 1) Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. HARD Code einige Daten im Quellcode, um die DB zu ersetzen. 2) Verwenden Sie eine logische und konsistente Form der Einrückung von Codezeilen und -blöcken. Die Einrückung soll den Codefluss leichter nachvollziehen lassen! –

+0

Bei welcher Zeile ist der Fehler aufgetreten? –

+0

@YAS_Bangamuwage in diesem Code in Zeile "String fil = jTable1.getValueAt (Zeile, 6) .toString();" –

Antwort

2
if (fil != "") { 

sollte sein:

if (fil != null) { 

Bearbeiten:

String fil = jTable1.getValueAt(row, 6).toString(); 

Sie können nicht toString() auf ein Null-Objekt aufrufen, so dass Sie so etwas wie benötigen:

Object filObject = jTable1.getValueAt(row, 6); 
String fil = (filObject == null) ? "" : filObject.toString(); 

Dann würden Sie die Original-Test verwenden:

If (fil != "") 
+0

Ich habe es auch versucht, aber es hat nicht funktioniert. –

+0

Erzähle uns in Zukunft die Aussage, die die NPE verursacht. Siehe Bearbeiten für meine nächste Schätzung. Wenn es nicht hilft, wurden Sie bereits gebeten, ein 'MCVE' zu posten. – camickr

+0

OK, es funktioniert. Vielen Dank. : D –