MXD-Server/src/gui/UI_LenheartUI/DamageControl.java

737 lines
25 KiB
Java
Raw Normal View History

2025-03-04 08:28:20 +08:00
/*
* Created by JFormDesigner on Mon Mar 03 22:18:15 CST 2025
*/
package gui.UI_LenheartUI;
import com.alibaba.fastjson.JSONObject;
import gui.Start;
import gui.特殊控制台;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
/**
* @author dongj
*/
public class DamageControl extends JPanel {
//伤害控制配置
public static JSONObject Config;
//JTableList
JTable[] Tables;
JButton[] Buttons;
//数组
String[] T = new String[]{"ddbb","ddzb","ddxs","dbbb","dbzb","dbxs","qgbb","qgzb","qgxs"};
2025-03-16 12:18:40 +08:00
public void SetRightL(JTable tableobj){
DefaultTableModel tableModel = (DefaultTableModel)tableobj.getModel();
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
for (int i = 0; i < tableobj.getColumnCount(); i++) {
if (tableobj.getColumnClass(i) == String.class) {
tableobj.getColumnModel().getColumn(i).setCellRenderer(rightRenderer);
}
}
}
2025-03-04 08:28:20 +08:00
public DamageControl() {
Config = Start.ConfigValuesJson;
initComponents();
//储存表
Tables = new JTable[]{table1,table2,table3,table4,table5,table6,table7,table8,table9};
Buttons = new JButton[]{button1,button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12,button13,button14,button15,button16,button17,button18};
//读取开关
toggleButton1.setSelected(Config.getInteger("isdd") == 1 ? true : false);
toggleButton2.setSelected(Config.getInteger("isdb") == 1 ? true : false);
toggleButton3.setSelected(Config.getInteger("isqg") == 1 ? true : false);
//设置属性
for (int i = 0; i < 9; i++) {
2025-03-16 12:18:40 +08:00
SetRightL(Tables[i]);
2025-03-04 08:28:20 +08:00
settableui(i,T[i]);
}
}
private void settableui(Integer Index,String TableName){
Object JsonObject = Config.get(TableName);
JSONObject JsonBuffer = (JSONObject) JsonObject;
// 使用 entrySet() 遍历键值对
for (Map.Entry<String, Object> entry : JsonBuffer.entrySet()) {
String key = entry.getKey();
2025-03-16 12:18:40 +08:00
String value = entry.getValue().toString();
2025-03-04 08:28:20 +08:00
DefaultTableModel tableModel = (DefaultTableModel) Tables[Index].getModel();
Object[] rowData = {Integer.valueOf(key), value};
tableModel.addRow(rowData);
}
}
private void 多段开关回调(ActionEvent e) {
boolean selected = toggleButton1.isSelected();
Config.put("isdd", selected ? 1 : 0);
}
private void 多倍开关回调(ActionEvent e) {
boolean selected = toggleButton2.isSelected();
Config.put("isdb", selected ? 1 : 0);
}
private void 切割开关回调(ActionEvent e) {
boolean selected = toggleButton3.isSelected();
Config.put("isqg", selected ? 1 : 0);
}
private void InitConfig(Integer Index,String TableName){
JSONObject Buffer = new JSONObject();
DefaultTableModel tableModel = (DefaultTableModel) Tables[Index].getModel();
int rowCount = tableModel.getRowCount();
for (int i = 0; i < rowCount; i++) {
String Key = tableModel.getValueAt(i, 0).toString();
2025-03-16 12:18:40 +08:00
String Value = tableModel.getValueAt(i, 1).toString();
2025-03-04 08:28:20 +08:00
Buffer.put(Key,Value);
}
Config.put(TableName, Buffer);
}
private void 保存配置(ActionEvent e) {
//设置属性
for (int i = 0; i < 9; i++) {
InitConfig(i,T[i]);
}
Start.ConfigValuesJson = Config;
特殊控制台.setTwConfig();
}
/**
* 按换行符分组再在组内按逗号分隔成两个数据一组
* @param text 输入的文本
* @return 分组后的数据列表外层 List 表示按行分组内层 List 表示每行内的两个数据一组
*/
private List<List<String[]>> groupByLineAndSplit(String text) {
List<List<String[]>> result = new ArrayList<>();
String[] lines = text.split("\n");
for (String line : lines) {
List<String[]> pairs = new ArrayList<>();
String[] parts = line.split(",");
for (int i = 0; i < parts.length; i += 2) {
if (i + 1 < parts.length) {
pairs.add(new String[]{parts[i].trim(), parts[i + 1].trim()});
} else {
pairs.add(new String[]{parts[i].trim()});
}
}
result.add(pairs);
}
return result;
}
private void 新增按钮回调(ActionEvent e) {
for (int i = 0; i < 18; i++) {
if (e.getSource() == Buttons[i]) {
int buttonNumber = i / 2;
DefaultTableModel tableModel = (DefaultTableModel) Tables[buttonNumber].getModel();
// 判断 Shift 键是否被按下
boolean isShiftPressed = (e.getModifiers() & ActionEvent.SHIFT_MASK) != 0;
if(isShiftPressed){
JTextPane textPane = new JTextPane();
JScrollPane scrollPane = new JScrollPane(textPane);
scrollPane.setPreferredSize(new Dimension(300, 200));
// 弹出包含富文本框的对话框
int result = JOptionPane.showConfirmDialog(
null,
scrollPane,
"请输入文本 以 , 分隔",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE
);
// 检查用户是否点击了确定按钮
if (result == JOptionPane.OK_OPTION) {
// 获取富文本框中的文本
String inputText = textPane.getText();
// 按换行符分组,再在组内按逗号分隔成两个数据一组
List<List<String[]>> groupedData = groupByLineAndSplit(inputText);
for (List<String[]> group : groupedData) {
for (String[] pair : group) {
if (pair.length == 2) {
Object[] rowData = {pair[0], pair[1]};
tableModel.addRow(rowData);
} else if (pair.length == 1) {
System.out.println("分组数据错误: " + pair[0] + ", 无对应数据");
}
}
}
}
}else{
Object[] rowData = {0, 0};
tableModel.addRow(rowData);
}
break;
}
}
}
private void 删除按钮回调(ActionEvent e) {
for (int i = 0; i < 18; i++) {
if (e.getSource() == Buttons[i]) {
int buttonNumber = i / 2;
int selectedRow = Tables[buttonNumber].getSelectedRow();
if (selectedRow != -1) {
DefaultTableModel tableModel = (DefaultTableModel) Tables[buttonNumber].getModel();
tableModel.removeRow(selectedRow);
if(tableModel.getRowCount() > selectedRow){
Tables[buttonNumber].setRowSelectionInterval(selectedRow, selectedRow);
}
}
break;
}
}
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents @formatter:off
scrollPane1 = new JScrollPane();
table1 = new JTable();
scrollPane2 = new JScrollPane();
table2 = new JTable();
scrollPane3 = new JScrollPane();
table3 = new JTable();
scrollPane4 = new JScrollPane();
table4 = new JTable();
scrollPane5 = new JScrollPane();
table5 = new JTable();
scrollPane6 = new JScrollPane();
table6 = new JTable();
scrollPane7 = new JScrollPane();
table7 = new JTable();
scrollPane8 = new JScrollPane();
table8 = new JTable();
scrollPane9 = new JScrollPane();
table9 = new JTable();
label1 = new JLabel();
label2 = new JLabel();
label3 = new JLabel();
toggleButton1 = new JToggleButton();
button1 = new JButton();
button2 = new JButton();
label4 = new JLabel();
label5 = new JLabel();
label6 = new JLabel();
label7 = new JLabel();
label8 = new JLabel();
label9 = new JLabel();
button3 = new JButton();
button4 = new JButton();
button5 = new JButton();
button6 = new JButton();
button7 = new JButton();
button8 = new JButton();
button9 = new JButton();
button10 = new JButton();
button11 = new JButton();
button12 = new JButton();
button13 = new JButton();
button14 = new JButton();
button15 = new JButton();
button16 = new JButton();
button17 = new JButton();
button18 = new JButton();
toggleButton2 = new JToggleButton();
toggleButton3 = new JToggleButton();
button19 = new JButton();
//======== this ========
setBorder(null);
setLayout(null);
//======== scrollPane1 ========
{
//---- table1 ----
table1.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u6bb5\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane1.setViewportView(table1);
}
add(scrollPane1);
scrollPane1.setBounds(18, 30, 164, 520);
//======== scrollPane2 ========
{
//---- table2 ----
table2.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u6bb5\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane2.setViewportView(table2);
}
add(scrollPane2);
scrollPane2.setBounds(185, 30, 164, 520);
//======== scrollPane3 ========
{
//---- table3 ----
table3.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u6280\u80fd\u4ee3\u7801", "\u7cfb\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane3.setViewportView(table3);
}
add(scrollPane3);
scrollPane3.setBounds(352, 30, 164, 520);
//======== scrollPane4 ========
{
//---- table4 ----
table4.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u500d\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane4.setViewportView(table4);
}
add(scrollPane4);
scrollPane4.setBounds(516, 30, 164, 520);
//======== scrollPane5 ========
{
//---- table5 ----
table5.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u500d\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane5.setViewportView(table5);
}
add(scrollPane5);
scrollPane5.setBounds(680, 30, 164, 520);
//======== scrollPane6 ========
{
//---- table6 ----
table6.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u6280\u80fd\u4ee3\u7801", "\u7cfb\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane6.setViewportView(table6);
}
add(scrollPane6);
scrollPane6.setBounds(844, 30, 164, 520);
//======== scrollPane7 ========
{
//---- table7 ----
table7.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u4f24\u5bb3"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane7.setViewportView(table7);
}
add(scrollPane7);
scrollPane7.setBounds(1008, 30, 164, 520);
//======== scrollPane8 ========
{
//---- table8 ----
table8.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u4ee3\u7801", "\u4f24\u5bb3"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane8.setViewportView(table8);
}
add(scrollPane8);
scrollPane8.setBounds(1172, 30, 164, 520);
//======== scrollPane9 ========
{
//---- table9 ----
table9.setModel(new DefaultTableModel(
new Object[][] {
},
new String[] {
"\u6280\u80fd\u4ee3\u7801", "\u7cfb\u6570"
}
) {
Class<?>[] columnTypes = new Class<?>[] {
2025-03-16 12:18:40 +08:00
Integer.class, String.class
2025-03-04 08:28:20 +08:00
};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnTypes[columnIndex];
}
});
scrollPane9.setViewportView(table9);
}
add(scrollPane9);
scrollPane9.setBounds(1336, 30, 164, 520);
//---- label1 ----
label1.setText("\u591a\u6bb5\u6570\u636e-\u80cc\u5305");
add(label1);
label1.setBounds(25, 5, 105, 30);
//---- label2 ----
label2.setText("\u591a\u6bb5\u6570\u636e-\u88c5\u5907");
add(label2);
label2.setBounds(190, 5, 105, 30);
//---- label3 ----
label3.setText("\u591a\u6bb5\u6570\u636e-\u7cfb\u6570");
add(label3);
label3.setBounds(355, 5, 105, 30);
//---- toggleButton1 ----
toggleButton1.setText("\u591a\u6bb5\u5f00\u5173");
toggleButton1.setIcon(new ImageIcon(getClass().getResource("/image/OFF3.png")));
toggleButton1.setSelectedIcon(new ImageIcon(getClass().getResource("/image/ON3.png")));
toggleButton1.setFocusPainted(false);
toggleButton1.setContentAreaFilled(false);
toggleButton1.addActionListener(e -> 多段开关回调(e));
add(toggleButton1);
toggleButton1.setBounds(20, 645, 160, 35);
//---- button1 ----
button1.setText("\u65b0\u589e");
button1.addActionListener(e -> 新增按钮回调(e));
add(button1);
button1.setBounds(20, 565, 160, button1.getPreferredSize().height);
//---- button2 ----
button2.setText("\u5220\u9664");
button2.addActionListener(e -> 删除按钮回调(e));
add(button2);
button2.setBounds(20, 605, 160, 34);
//---- label4 ----
label4.setText("\u591a\u500d\u6570\u636e-\u80cc\u5305");
add(label4);
label4.setBounds(520, 5, 105, 30);
//---- label5 ----
label5.setText("\u591a\u500d\u6570\u636e-\u88c5\u5907");
add(label5);
label5.setBounds(685, 5, 105, 30);
//---- label6 ----
label6.setText("\u591a\u500d\u6570\u636e-\u7cfb\u6570");
add(label6);
label6.setBounds(850, 5, 105, 30);
//---- label7 ----
label7.setText("\u5207\u5272\u6570\u636e-\u80cc\u5305");
add(label7);
label7.setBounds(1010, 5, 105, 30);
//---- label8 ----
label8.setText("\u5207\u5272\u6570\u636e-\u88c5\u5907");
add(label8);
label8.setBounds(1175, 5, 105, 30);
//---- label9 ----
label9.setText("\u5207\u5272\u6570\u636e-\u7cfb\u6570");
add(label9);
label9.setBounds(1340, 5, 105, 30);
//---- button3 ----
button3.setText("\u65b0\u589e");
button3.addActionListener(e -> 新增按钮回调(e));
add(button3);
button3.setBounds(187, 565, 160, 34);
//---- button4 ----
button4.setText("\u5220\u9664");
button4.addActionListener(e -> 删除按钮回调(e));
add(button4);
button4.setBounds(187, 605, 160, 34);
//---- button5 ----
button5.setText("\u65b0\u589e");
button5.addActionListener(e -> 新增按钮回调(e));
add(button5);
button5.setBounds(354, 565, 160, 34);
//---- button6 ----
button6.setText("\u5220\u9664");
button6.addActionListener(e -> 删除按钮回调(e));
add(button6);
button6.setBounds(354, 605, 160, 34);
//---- button7 ----
button7.setText("\u65b0\u589e");
button7.addActionListener(e -> 新增按钮回调(e));
add(button7);
button7.setBounds(520, 565, 160, 34);
//---- button8 ----
button8.setText("\u5220\u9664");
button8.addActionListener(e -> 删除按钮回调(e));
add(button8);
button8.setBounds(520, 605, 160, 34);
//---- button9 ----
button9.setText("\u65b0\u589e");
button9.addActionListener(e -> 新增按钮回调(e));
add(button9);
button9.setBounds(685, 565, 160, 34);
//---- button10 ----
button10.setText("\u5220\u9664");
button10.addActionListener(e -> 删除按钮回调(e));
add(button10);
button10.setBounds(685, 605, 160, 34);
//---- button11 ----
button11.setText("\u65b0\u589e");
button11.addActionListener(e -> 新增按钮回调(e));
add(button11);
button11.setBounds(848, 565, 160, 34);
//---- button12 ----
button12.setText("\u5220\u9664");
button12.addActionListener(e -> 删除按钮回调(e));
add(button12);
button12.setBounds(848, 605, 160, 34);
//---- button13 ----
button13.setText("\u65b0\u589e");
button13.addActionListener(e -> 新增按钮回调(e));
add(button13);
button13.setBounds(1012, 565, 160, 34);
//---- button14 ----
button14.setText("\u5220\u9664");
button14.addActionListener(e -> 删除按钮回调(e));
add(button14);
button14.setBounds(1012, 605, 160, 34);
//---- button15 ----
button15.setText("\u65b0\u589e");
button15.addActionListener(e -> 新增按钮回调(e));
add(button15);
button15.setBounds(1176, 565, 160, 34);
//---- button16 ----
button16.setText("\u5220\u9664");
button16.addActionListener(e -> 删除按钮回调(e));
add(button16);
button16.setBounds(1176, 605, 160, 34);
//---- button17 ----
button17.setText("\u65b0\u589e");
button17.addActionListener(e -> 新增按钮回调(e));
add(button17);
button17.setBounds(1340, 565, 160, 34);
//---- button18 ----
button18.setText("\u5220\u9664");
button18.addActionListener(e -> 删除按钮回调(e));
add(button18);
button18.setBounds(1340, 605, 160, 34);
//---- toggleButton2 ----
toggleButton2.setText("\u591a\u500d\u5f00\u5173");
toggleButton2.setIcon(new ImageIcon(getClass().getResource("/image/OFF3.png")));
toggleButton2.setSelectedIcon(new ImageIcon(getClass().getResource("/image/ON3.png")));
toggleButton2.setFocusPainted(false);
toggleButton2.setContentAreaFilled(false);
toggleButton2.addActionListener(e -> 多倍开关回调(e));
add(toggleButton2);
toggleButton2.setBounds(187, 645, 160, 35);
//---- toggleButton3 ----
toggleButton3.setText("\u5207\u5272\u5f00\u5173");
toggleButton3.setIcon(new ImageIcon(getClass().getResource("/image/OFF3.png")));
toggleButton3.setSelectedIcon(new ImageIcon(getClass().getResource("/image/ON3.png")));
toggleButton3.setFocusPainted(false);
toggleButton3.setContentAreaFilled(false);
toggleButton3.addActionListener(e -> 切割开关回调(e));
add(toggleButton3);
toggleButton3.setBounds(355, 645, 160, 35);
//---- button19 ----
button19.setText("\u4fdd\u5b58\u914d\u7f6e");
button19.addActionListener(e -> 保存配置(e));
add(button19);
button19.setBounds(520, 645, 160, 35);
{
// compute preferred size
Dimension preferredSize = new Dimension();
for(int i = 0; i < getComponentCount(); i++) {
Rectangle bounds = getComponent(i).getBounds();
preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
}
Insets insets = getInsets();
preferredSize.width += insets.right;
preferredSize.height += insets.bottom;
setMinimumSize(preferredSize);
setPreferredSize(preferredSize);
}
// JFormDesigner - End of component initialization //GEN-END:initComponents @formatter:on
}
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables @formatter:off
private JScrollPane scrollPane1;
private JTable table1;
private JScrollPane scrollPane2;
private JTable table2;
private JScrollPane scrollPane3;
private JTable table3;
private JScrollPane scrollPane4;
private JTable table4;
private JScrollPane scrollPane5;
private JTable table5;
private JScrollPane scrollPane6;
private JTable table6;
private JScrollPane scrollPane7;
private JTable table7;
private JScrollPane scrollPane8;
private JTable table8;
private JScrollPane scrollPane9;
private JTable table9;
private JLabel label1;
private JLabel label2;
private JLabel label3;
private JToggleButton toggleButton1;
private JButton button1;
private JButton button2;
private JLabel label4;
private JLabel label5;
private JLabel label6;
private JLabel label7;
private JLabel label8;
private JLabel label9;
private JButton button3;
private JButton button4;
private JButton button5;
private JButton button6;
private JButton button7;
private JButton button8;
private JButton button9;
private JButton button10;
private JButton button11;
private JButton button12;
private JButton button13;
private JButton button14;
private JButton button15;
private JButton button16;
private JButton button17;
private JButton button18;
private JToggleButton toggleButton2;
private JToggleButton toggleButton3;
private JButton button19;
// JFormDesigner - End of variables declaration //GEN-END:variables @formatter:on
}