提交 b888b50d 编写于 作者: C chenjianqiang

支持table操作

上级 bbd619f2
......@@ -9,6 +9,7 @@ import javax.accessibility.AccessibleContext;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
......@@ -33,6 +34,8 @@ public class HostsFrame {
private int[] tableRowsSelected;
//--表格被选中的列
private int[] tableCellsSelected;
//--model
private DefaultTableModel defaultTableModel;
//页面组件
//--主面板
......@@ -92,6 +95,7 @@ public class HostsFrame {
parseHostList();
}
}
PlugsUtils.modalMessageInfo("操作成功~");
});
}
......@@ -181,21 +185,29 @@ public class HostsFrame {
JMenuItem itemPush = new JMenuItem("新增一行", getMenuIcon("scan"));
//--设置监听方法 匿名类
itemPush.addActionListener(itemE -> {
hostTable.addColumn(new TableColumn(hostTable.getRowCount() - 1));
defaultTableModel.addRow(new String[]{"", ""});
});
nameTableMenu.add(itemPush);
//2
JMenuItem itemInsert = new JMenuItem("插入一行", getMenuIcon("add"));
//--设置监听方法 匿名类
itemInsert.addActionListener(itemE -> {
hostTable.addColumn(new TableColumn(tableRowsSelected[tableRowsSelected.length - 1]));
if (tableCellsSelected.length <= 0) {
return;
}
defaultTableModel.insertRow(tableRowsSelected[tableRowsSelected.length - 1], new String[]{"", ""});
});
nameTableMenu.add(itemInsert);
//2
JMenuItem itemDelete = new JMenuItem("删除", getMenuIcon("delete"));
//--设置监听方法 匿名类
itemDelete.addActionListener(itemE -> {
hostTable.removeColumnSelectionInterval(tableRowsSelected[0], tableRowsSelected[tableRowsSelected.length - 1]);
if (tableCellsSelected.length <= 0) {
return;
}
for (int i = 0; i <= tableCellsSelected[tableCellsSelected.length - 1] - tableCellsSelected[0]; i++) {
defaultTableModel.removeRow(tableRowsSelected[0]);
}
});
nameTableMenu.add(itemDelete);
}
......@@ -222,12 +234,14 @@ public class HostsFrame {
* @param fileName 文件名称
*/
private void initHostTable(String fileName) {
defaultTableModel = new DefaultTableModel(findFileDetails(fileName), new String[]{"IP", "映射值"});
initTableMenu();
hostTable.setModel(new DefaultTableModel(findFileDetails(fileName), new String[]{"IP", "映射值"}));
hostTable.setModel(defaultTableModel);
hostTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == 3) {
System.err.println(Arrays.toString(hostTable.getSelectedRows()));
//得到选中的行列的索引值
tableRowsSelected = hostTable.getSelectedRows();
tableCellsSelected = hostTable.getSelectedColumns();
......@@ -250,7 +264,7 @@ public class HostsFrame {
* @return 文件正文
*/
private String[][] findFileDetails(String fileName) {
String[][] result = new String[][]{};
String[][] result = new String[0][1];
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(parseHostsFileAndPath(fileName)));
......@@ -270,6 +284,9 @@ public class HostsFrame {
}
}
}
if (result.length == 0 || result.length == 1 && result[0].length == 0) {
result = new String[][]{{"", ""}};
}
return result;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册