Ciao a tutti,
ho creato un frame in java con al suo interno una tabella con 5 colonne e una serie di righe io vorrei che le celle di questa colonna non fossero editabili (modificabili) dall'utente (cioè l'utente può solo leggere il contenuto delle varie celle ma non può cambiare il contenuto delle celle facendoci doppio click sopra)... sapete dirmi come si fa?
La classe per creare la tabella l'ho fatto nel seguente modo:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Table extends JPanel {
private boolean DEBUG = false;
public Table() {
super(new GridLayout(1,0));
String[] columnNames = {"Num.",
"Source",
"Destination",
"Protocol",
"Info"};
Object[][] data = {
{"1", "192.168.0.1",
"192.168.0.2", "TCP", "Pippo"},
{"1", "192.168.0.3",
"192.168.0.4", "ARP", "Laika"},
};
final JTable table = new JTable(data, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
add(scrollPane);
}
}
invece la tabella viene inserita nel frame nel seguente modo:
MyInternalFrame frame = new MyInternalFrame();
frame.setVisible(true); //necessary as of 1.3
topPanel.add(frame);
try {
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e) {}
//Create and set up the content pane.
Table newContentPane = new Table();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
non ho riportato il resto del codice per non appesantire la lettura... sapere dirmi come risolvere questo problema?
Grazie