Hallo,
ich habe hier http://www.java-forum.org/thema/jtable-einzelne-zellen-selektieren.75417
mehr oder weniger einen Lösungsansatz gefunden.
Ich komm leider nicht dahinter wie ich das umsetze.
Ich möchte in JTable wenn ich eine genaue Zelle anklicke(Maus Klick mit Button 1), das er mir diesen Inhalt der Zelle einfach ausgibt. Wie baue ich das, wo, mit ein?^^
Ich hoffe ihr könnt mir weiterhelfen.
Der Inhalt der Zelle ist ein String.
ich habe hier http://www.java-forum.org/thema/jtable-einzelne-zellen-selektieren.75417
mehr oder weniger einen Lösungsansatz gefunden.
Ich komm leider nicht dahinter wie ich das umsetze.
Ich möchte in JTable wenn ich eine genaue Zelle anklicke(Maus Klick mit Button 1), das er mir diesen Inhalt der Zelle einfach ausgibt. Wie baue ich das, wo, mit ein?^^
Ich hoffe ihr könnt mir weiterhelfen.
Der Inhalt der Zelle ist ein String.
Java:
package paket_VK;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JFrame;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@SuppressWarnings({ "serial", "unused" })
public class SelectPat extends JPanel
{
private boolean DEBUG = false;
private JTable table;
private JTextField filterText;
private JTextField statusText;
private TableRowSorter<MyTableModel> sorter;
private AdminSelectGui ASG = new AdminSelectGui();
private AddPatGui APG = new AddPatGui();
private MyTableModel MTM = new MyTableModel();
public SelectPat()
{
super();
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
//Create a table with a sorter.
MyTableModel model = new MyTableModel();
sorter = new TableRowSorter<MyTableModel>(model);
table = new JTable(model);
table.setRowSorter(sorter);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.getSelectionModel().addListSelectionListener(
new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent event)
{
int viewRow = table.getSelectedRow();
if (viewRow < 0)
{
//Selection got filtered away.
statusText.setText("");
}
else
{
int modelRow = table.convertRowIndexToModel(viewRow);
statusText.setText(String.format("Selected Row in view: %d. " + "Selected Row in model: %d.", viewRow, modelRow));
}
}
}
);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
JPanel form = new JPanel(new SpringLayout());
JLabel l1 = new JLabel("Filter Text:", SwingConstants.TRAILING);
form.add(l1);
filterText = new JTextField();
//Whenever filterText changes, invoke newFilter.
filterText.getDocument().addDocumentListener(
new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
newFilter();
}
public void insertUpdate(DocumentEvent e) {
newFilter();
}
public void removeUpdate(DocumentEvent e) {
newFilter();
}
});
l1.setLabelFor(filterText);
form.add(filterText);
JLabel l2 = new JLabel("Status:", SwingConstants.TRAILING);
form.add(l2);
statusText = new JTextField();
l2.setLabelFor(statusText);
form.add(statusText);
SpringUtilities.makeCompactGrid(form, 2, 2, 6, 6, 6, 6);
add(form);
}
public void newFilter()
{
RowFilter<MyTableModel, Object> rf = null;
try {
rf = RowFilter.regexFilter(filterText.getText(), 0);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
}
}