06. december 2003 - 15:14
Der er
3 kommentarer og
1 løsning
Få string fra table row!!
Jeg har et problem med at få en streng ud af en tabelrække. koden ser sådan ud:
table.setSelectionMod(ListSelectionModel.SINGLE_SELECTION);
//Ask to be notified of selection changes.
ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
//Ignore extra messages.
if (e.getValueIsAdjusting()) return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (lsm.isSelectionEmpty()) {
//no rows are selected
}
else {
int selectedRow = lsm.getMaxSelectionIndex();
System.out.println(selectedRow);
//selectedRow is selected
String[] selection = new String[10];
for(int i = 0; i < 8; i++) {
selection[i] = tableData[selectedRow][i];
System.out.println(selection[i]);
}
}
}
});
Når jeg kører hele programmet får jeg ingen række skrevet ud første gang jeg vælger en række og 1 række bliver udskrevet næste gang jeg vælger en række og 2 rækker næste gang osv.
Desuden får jeg udskrevet 2 rækker hvis jeg først vælger 1 række og dernæst en anden række og så trykker på den knap der skal hente rækkeindholdet (selvom jeg bruger SINGLE.SELECTION).
06. december 2003 - 17:44
#2
Jeg har prøvet det nu, men får : Cant resolve symbol - method getSelectedRow().
Jeg ved ikke om det har noget at gøre med sammenhængen jeg bruger metoden i???
Jeg har importeret javax.swing.*;
04. april 2004 - 14:15
#4
Det må undskylde, her har jeg vist helt klart sovet i timen - du skulle have spurgt om jeg var faldet i søvn eller havde opgivet.
Her er et løsningsforslag til hvordan du henter værdierne fra en tabelrække
import javax.swing.*;
public class JFrame_5 extends javax.swing.JFrame {
public JFrame_5() {
initComponents();
}
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"a", "1", "A", "7"},
{"b", "2", "B", "8"},
{"c", "3", "C", "9"},
{"d", "4", "D", "10"}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
jButton1.setText("Udskriv v\u00e6rdierne i en r\u00e6kke");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
chooseRow(evt);
}
});
getContentPane().add(jButton1, java.awt.BorderLayout.NORTH);
pack();
}
private void chooseRow(java.awt.event.ActionEvent evt) {
String s = JOptionPane.showInputDialog(this, "Skriv rækkenummeret");
int row = Integer.parseInt(s);
for(int i = 0; i < jTable1.getColumnCount(); i++)
System.out.print(jTable1.getValueAt(row , i) + " ");
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new JFrame_5().show();
}
private javax.swing.JButton jButton1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
}
PS. Jeg er vågen nu, hvis du har flere spørgsmål.