界面表格停用,启用,停用可以编辑 启用不能编辑
时间: 2024-04-16 17:24:03 浏览: 56
要实现在Java界面中的表格停用、启用以及启用但不能编辑的功能,你可以结合使用`setEnabled()`和`setEditable()`方法来实现。
以下是一个示例代码,展示了如何在Java界面中实现表格的停用、启用和启用但不能编辑的转换:
```java
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TableDemo extends JFrame {
private JTable table;
private JButton disableButton;
private JButton enableButton;
private JButton enableReadOnlyButton;
public TableDemo() {
// 创建表格数据
Object[][] data = {
{"John", "Doe", 30},
{"Jane", "Smith", 25},
{"Bob", "Johnson", 35}
};
// 创建表格列名
String[] columnNames = {"First Name", "Last Name", "Age"};
// 创建表格模型
DefaultTableModel model = new DefaultTableModel(data, columnNames);
// 创建表格
table = new JTable(model);
// 创建按钮
disableButton = new JButton("Disable");
enableButton = new JButton("Enable");
enableReadOnlyButton = new JButton("Enable Read-only");
// 设置按钮的点击事件处理器
disableButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
table.setEnabled(false);
}
});
enableButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
table.setEnabled(true);
setEditableAllCells(table, true);
}
});
enableReadOnlyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
table.setEnabled(true);
setEditableAllCells(table, false);
}
});
// 创建面板并添加组件
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.add(disableButton);
panel.add(enableButton);
panel.add(enableReadOnlyButton);
// 将表格和面板添加到窗口中
add(new JScrollPane(table), BorderLayout.CENTER);
add(panel, BorderLayout.SOUTH);
// 设置窗口属性
setTitle("Table Demo");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
// 设置所有单元格的编辑状态
private void setEditableAllCells(JTable table, boolean editable) {
for (int row = 0; row < table.getRowCount(); row++) {
for (int column = 0; column < table.getColumnCount(); column++) {
table.getColumnModel().getColumn(column).setCellEditor(editable ? new DefaultCellEditor(new JTextField()) : null);
}
}
}
public static void main(String[] args) {
new TableDemo();
}
}
```
运行这段代码,你将看到一个带有停用、启用和启用但不能编辑按钮的界面。点击"Disable"按钮,表格将被停用,无法编辑。点击"Enable"按钮,表格将被启用且可以编辑。点击"Enable Read-only"按钮,表格将被启用,但所有单元格将变为只读状态,无法编辑。
阅读全文