А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я Все примеры | Примеры по пакетам |
|
Таблица из модели пользователя с обработкой клика мышью по столбцу//Таблица из модели пользователя с обработкой клика мышью по столбцу.
//Модель таблицы создается из векторов
package jtable;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.util.Vector;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
public class TableCustomModelDemo extends JPanel {
private boolean DEBUG = true;
Vector< Vector> rows = new Vector< Vector>();
Vector row = new Vector();
Vector columns = new Vector();
JTable table;
public TableCustomModelDemo() {
super(new GridLayout(1, 0));
row.add( "a1" );
row.add( "b1" );
row.add( "c1" );
rows.add( row );
row = new Vector();
row.add( "a2" );
row.add( "b2" );
row.add( "b3" );
rows.add( row );
columns.add ( "a" );
columns.add ( "b" );
columns.add ( "c" );
table = new JTable(new CustomTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tableMouseClicked(evt);
}
});
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
Component source = (Component) evt.getSource();
int col= table.getSelectedColumn();
System.out.println("col "+col);
if(col==(table.getModel().getColumnCount()-1)){
JOptionPane optionPane = new JOptionPane();
optionPane.setMessage("Привет!");
optionPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);
JDialog dialog = optionPane.createDialog(source,
"Кнопка");
dialog.show();
}
}
class CustomTableModel extends AbstractTableModel {
public int getColumnCount() {
return columns.size();
}
public int getRowCount() {
return rows.size();
}
public String getColumnName(int col) {
return columns.get(col).toString();
}
public Object getValueAt(int row, int col) {
return rows.get(row).get(col);
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {
return true;
}
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Задание значения ячейки " + row + "," + col
+ " в " + value );
}
Vector row1 = new Vector();
row1=rows.get(row);
row1.remove(col);
row1.add(col,value);
rows.remove(row);
rows.add(row,row1);
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("Новые значения в таблице:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i = 0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j = 0; j < numCols; j++) {
System.out.print(" " +rows.get(i).get(j));
}
System.out.println();
}
System.out.println("--------------------------");
}
}
private static void createAndShowGUI() {
JFrame jframe = new JFrame("Таблица из модели пользователя");
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TableCustomModelDemo newContentPane = new TableCustomModelDemo();
newContentPane.setOpaque(true);
jframe.setContentPane(newContentPane);
jframe.pack();
jframe.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
|
|
|
|
|