只允许表头第一列或者某一列不可拖动,其他列可以拖动,请问怎么实现?
JTable的所有列是默认可以拖动的,
JTableHeader tableHeader = JTable.getTableHeader();
tableHeader.setReorderingAllowed(false);//表示所有的列都不可以拖动
JTable的所有列是默认可以拖动的,
JTableHeader tableHeader = JTable.getTableHeader();
tableHeader.setReorderingAllowed(false);//表示所有的列都不可以拖动
解决方案 »
- 求救啊
- 谁能为我讲清楚编译,装载,连接,初始化这之间的关系和顺序?越清楚越好。
- 如何能让程序正常运行并且显示面板,请在基础上添加程序!
- 求教JScrollPane pane = new JScrollPane(textArea)出错
- hashmap嵌套取值问题
- socket 的http连接就是不行,大伙们看看!
- java中关于InputStream流的读取问题,available()返回0,用read()还能读,为什么?
- java虚拟机崩溃了 HotSpot Virtual Machine Error : 11
- 求大神帮助!!!
- 哪里有visual j++6.0的下载,急用,谢谢!希望大家多提供一些宽带下载的好网址.
- 一个用户输入问题
- 怎么让我的代码运行 ? 路径怎么添加进去 ?
package com.test;import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import java.util.Vector;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;public class TestTable extends JFrame { private static final long serialVersionUID = -3606700961317828681L; private JTable rowHeaderTable = null; private DefaultTableModel rowHeaderTableModel = null; private JTable table = null; private DefaultTableModel tableModel = null; public TestTable() {
super("Test");
init();
} private void init() {
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(getCenterPanel(), BorderLayout.CENTER);
this.getContentPane().add(getSouthPanel(), BorderLayout.SOUTH);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} private JPanel getSouthPanel() {
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
JButton addBtn = new JButton("Add");
addBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
addCaseRow();
}
});
JButton delBtn = new JButton("Delete");
delBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
removeCaseRows(table.getSelectedRows());
}
});
panel.add(addBtn);
panel.add(delBtn);
return panel;
} private JScrollPane getCenterPanel() {
rowHeaderTable = new JTable(getRowHeaderTableModel(), getRowHeaderTableColumnModel());
rowHeaderTable.getTableHeader().setReorderingAllowed(false);
rowHeaderTable.setColumnSelectionAllowed(false);
rowHeaderTable.getTableHeader().setReorderingAllowed(false);
rowHeaderTable.getTableHeader().setResizingAllowed(false);
rowHeaderTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
rowHeaderTable.setEnabled(false);
JViewport jv = new JViewport();
jv.setView(rowHeaderTable);
int height = new Double(rowHeaderTable.getMaximumSize().getHeight()).intValue();
jv.setPreferredSize(new Dimension(50, height));
JScrollPane scrollPanel_main = new JScrollPane();
table = new JTable(getTableModel(), getTableColumnModel());
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPanel_main.getViewport().add(table);
scrollPanel_main.setRowHeader(jv);
scrollPanel_main.setCorner(JScrollPane.UPPER_LEFT_CORNER, rowHeaderTable.getTableHeader());
return scrollPanel_main;
} private DefaultTableModel getRowHeaderTableModel() {
rowHeaderTableModel = new DefaultTableModel(0, 1) { private static final long serialVersionUID = 1986093475481012619L; public boolean isCellEditable(int row, int column) {
return false;
}
};
return rowHeaderTableModel;
} private DefaultTableModel getTableModel() {
tableModel = new DefaultTableModel(0, 2) { private static final long serialVersionUID = 3325101167983738710L; public boolean isCellEditable(int row, int column) {
return true;
}
}; return tableModel;
} private TableColumnModel getTableColumnModel() {
TableColumnModel columnModel = new DefaultTableColumnModel();
for (int i = 0; i < 2; i++) {
columnModel.addColumn(getTableColumns()[i]);
}
return columnModel;
} private TableColumn[] getTableColumns() {
TableColumn[] tableColumns = new TableColumn[2]; tableColumns[0] = new TableColumn(0, 200, null, null);
tableColumns[0].setHeaderValue("Test1"); tableColumns[1] = new TableColumn(1, 200, null, null);
tableColumns[1].setHeaderValue("Test2"); return tableColumns;
} private TableColumnModel getRowHeaderTableColumnModel() {
DefaultTableColumnModel rowHeaderColumnModel = new DefaultTableColumnModel();
rowHeaderColumnModel.addColumn(getRowNumberColumn());
return rowHeaderColumnModel;
} private TableColumn getRowNumberColumn() {
TableColumn rowNumberColumn = new TableColumn(0, 50, null, null);
rowNumberColumn.setHeaderValue("ID");
return rowNumberColumn;
} private void addCaseRow() {
int rowId = tableModel.getRowCount() + 1;
Vector<String> headerVC = new Vector<String>();
headerVC.add(String.valueOf(rowId));
Vector<String> dataVC = new Vector<String>();
dataVC.add("Test1:" + String.valueOf(rowId));
dataVC.add("Test2:" + String.valueOf(rowId));
rowHeaderTableModel.addRow(headerVC);
tableModel.addRow(dataVC);
} private void removeCaseRows(int[] rowIndex) {
if (rowIndex.length > 0) {
Arrays.sort(rowIndex);
for (int i = rowIndex.length - 1; i >= 0; i--) {
tableModel.removeRow(rowIndex[i]);
rowHeaderTableModel.removeRow(rowIndex[i]);
}
}
updateRowHeader();
} private void updateRowHeader() {
for (int i = 0; i < rowHeaderTableModel.getRowCount(); i++) {
rowHeaderTableModel.setValueAt(i + 1, i, 0);
}
} public static void main(String[] args) {
new TestTable();
}}