928 lines
33 KiB
Java
928 lines
33 KiB
Java
/*
|
||
* Created by JFormDesigner on Wed Mar 12 16:06:47 CST 2025
|
||
*/
|
||
|
||
package gui.UI_LenheartUI;
|
||
|
||
import java.awt.*;
|
||
import java.awt.event.*;
|
||
import java.io.File;
|
||
|
||
import java.util.List;
|
||
import javax.swing.*;
|
||
import javax.swing.border.*;
|
||
import javax.swing.event.MouseInputAdapter;
|
||
import javax.swing.table.*;
|
||
|
||
import gui.tw.Drop;
|
||
|
||
|
||
/**
|
||
* @author dongj
|
||
*/
|
||
public class ExplosiveControl extends JPanel {
|
||
public ExplosiveControl() {
|
||
initComponents();
|
||
}
|
||
|
||
public void ClearTable(JTable tableobj) {
|
||
for (int i = ((DefaultTableModel) (DefaultTableModel) tableobj.getModel()).getRowCount() - 1; i >= 0; --i) {
|
||
((DefaultTableModel) (DefaultTableModel) tableobj.getModel()).removeRow(i);
|
||
}
|
||
}
|
||
|
||
public void WriteTable2(List<Drop> kps){
|
||
DefaultTableModel tableModel = (DefaultTableModel)table2.getModel();
|
||
|
||
for (Drop kp : kps) {
|
||
tableModel.insertRow(this.table2.getRowCount(), new Object[]{Integer.valueOf(kp.getId()), kp.getDropName(), Integer.valueOf(kp.getDropperid()), kp.getItenName(), Integer.valueOf(kp.getItemId()), Integer.valueOf(kp.getChance())});
|
||
}
|
||
}
|
||
|
||
public void WriteTable1(List<Drop> kps){
|
||
DefaultTableModel tableModel = (DefaultTableModel)table1.getModel();
|
||
|
||
for (Drop kp : kps) {
|
||
tableModel.insertRow(this.table1.getRowCount(), new Object[]{Integer.valueOf(kp.getId()), kp.getItenName(), Integer.valueOf(kp.getItemId()), Integer.valueOf(kp.getChance())});
|
||
}
|
||
}
|
||
|
||
|
||
private void 加载刷新怪物卡片(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getKPS());
|
||
}
|
||
|
||
private void 刷新怪物爆物数据(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getMobBLs());
|
||
|
||
ClearTable(table1);
|
||
WriteTable1(Drop.getQQS());
|
||
}
|
||
|
||
private void 根据怪物ID清理(ActionEvent e) {
|
||
Drop.deleteGWdropperid(Integer.valueOf(this.怪物ID清理.getText()));
|
||
ClearTable(table2);
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
|
||
private void 根据物品ID清理(ActionEvent e) {
|
||
Drop.deleteItemId(Integer.valueOf(this.物品ID清理.getText()));
|
||
ClearTable(table1);
|
||
ClearTable(table2);
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
|
||
private void 一键清空独立爆率表(ActionEvent e) {
|
||
// 检查 Shift 键是否被按下
|
||
boolean isShiftPressed = (e.getModifiers() & InputEvent.CTRL_MASK) != 0;
|
||
if(isShiftPressed){
|
||
Drop.deleteGWAll();
|
||
ClearTable(table2);
|
||
}
|
||
}
|
||
|
||
private void 一键清空全局爆率表(ActionEvent e) {
|
||
// 检查 Shift 键是否被按下
|
||
boolean isShiftPressed = (e.getModifiers() & InputEvent.CTRL_MASK) != 0;
|
||
if(isShiftPressed){
|
||
Drop.deleteQJAll();
|
||
ClearTable(table1);
|
||
}
|
||
}
|
||
|
||
private void button物品ID查询掉落(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getItemIdsMob(this.物品ID查询掉落.getText()));
|
||
ClearTable(table1);
|
||
WriteTable1(Drop.getItemIdsQQ(this.物品ID查询掉落.getText()));
|
||
}
|
||
|
||
private void 物品名查询掉落函数(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getItemNamesMob(this.物品名查询掉落.getText()));
|
||
ClearTable(table1);
|
||
WriteTable1(Drop.getItemNamesQQ(this.物品名查询掉落.getText()));
|
||
}
|
||
|
||
private void 怪物ID查询掉落函数(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getMobIdsMob(this.怪物ID查询掉落.getText()));
|
||
}
|
||
|
||
private void 怪物名查询掉落函数(ActionEvent e) {
|
||
ClearTable(table2);
|
||
WriteTable2(Drop.getMobNames(this.怪物名查询掉落.getText()));
|
||
}
|
||
|
||
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);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void 新增独立爆率配置(ActionEvent e) {
|
||
// 检查 Shift 键是否被按下
|
||
boolean isShiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) != 0;
|
||
|
||
if (isShiftPressed) {
|
||
// 按住 Shift 键,弹出输入框让用户输入批量数据
|
||
String input = showMultiLineInputDialog();
|
||
if (input != null && !input.isEmpty()) {
|
||
// 分割输入的文本
|
||
String[] pairs = input.split("\n");
|
||
for (String pair : pairs) {
|
||
String[] values = pair.split(",");
|
||
if (values.length == 3) {
|
||
try {
|
||
Integer MonId = Integer.valueOf(values[0].trim());
|
||
Integer itemId = Integer.valueOf(values[1].trim());
|
||
Integer chance = Integer.valueOf(values[2].trim());
|
||
Drop.insertGWId(MonId, itemId, chance);
|
||
} catch (NumberFormatException ex) {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!部分数据格式有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
} catch (Exception ex) {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!检查怪物ID和物品ID是否有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
}
|
||
} else {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!数据格式有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
}
|
||
}
|
||
// 刷新怪物爆物数据
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
} else {
|
||
Integer MonId;
|
||
Integer ItemId;
|
||
Integer Chance;
|
||
try {
|
||
MonId = Integer.valueOf(this.G_1.getText());
|
||
ItemId = Integer.valueOf(this.G_2.getText());
|
||
Chance = Integer.valueOf(this.G_3.getText());
|
||
} catch (Exception ex) {
|
||
JOptionPane.showMessageDialog(null, "新增失败!检查是否填写了全部参数", "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
return;
|
||
}
|
||
|
||
|
||
try {
|
||
Drop.insertGWId(MonId, ItemId, Chance);
|
||
} catch (Exception ee) {
|
||
|
||
JOptionPane.showMessageDialog(null, "新增失败!检查怪物ID和物品ID是否有误。", "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
return;
|
||
}
|
||
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
}
|
||
|
||
private void 独立爆率删除配置(ActionEvent e) {
|
||
int[] selectedRows = table2.getSelectedRows();
|
||
if (selectedRows.length > 0) {
|
||
DefaultTableModel tableModel = (DefaultTableModel) table2.getModel();
|
||
|
||
// 由于删除行后索引会改变,为了避免索引混乱,从后往前删除
|
||
for (int i = selectedRows.length - 1; i >= 0; i--) {
|
||
int selectedRow = selectedRows[i];
|
||
// 将视图中的行索引转换为 TableModel 中的实际行索引
|
||
int modelRow = table2.convertRowIndexToModel(selectedRow);
|
||
|
||
Integer Ids = (Integer) tableModel.getValueAt(modelRow, 0);
|
||
Integer MonId = (Integer) tableModel.getValueAt(modelRow, 2);
|
||
|
||
Drop.deleteGWId(Ids, MonId);
|
||
tableModel.removeRow(modelRow);
|
||
}
|
||
if (tableModel.getRowCount() > 0) {
|
||
int newSelectedRow = Math.min(selectedRows[0], tableModel.getRowCount() - 1);
|
||
table2.setRowSelectionInterval(newSelectedRow, newSelectedRow);
|
||
}
|
||
}
|
||
}
|
||
|
||
private String showMultiLineInputDialog() {
|
||
JTextArea textArea = new JTextArea(15, 40);
|
||
textArea.setLineWrap(true);
|
||
textArea.setWrapStyleWord(true);
|
||
|
||
int option = JOptionPane.showConfirmDialog(
|
||
null,
|
||
new JScrollPane(textArea),
|
||
"批量添加",
|
||
JOptionPane.OK_CANCEL_OPTION,
|
||
JOptionPane.PLAIN_MESSAGE
|
||
);
|
||
|
||
return (option == JOptionPane.OK_OPTION) ? textArea.getText().trim() : null;
|
||
}
|
||
|
||
private void 新增全局爆率配置(ActionEvent e) {
|
||
// 检查 Shift 键是否被按下
|
||
boolean isShiftPressed = (e.getModifiers() & InputEvent.SHIFT_MASK) != 0;
|
||
|
||
if (isShiftPressed) {
|
||
// 按住 Shift 键,弹出输入框让用户输入批量数据
|
||
String input = showMultiLineInputDialog();
|
||
if (input != null && !input.isEmpty()) {
|
||
// 分割输入的文本
|
||
String[] pairs = input.split("\n");
|
||
for (String pair : pairs) {
|
||
String[] values = pair.split(",");
|
||
if (values.length == 2) {
|
||
try {
|
||
Integer itemId = Integer.valueOf(values[0].trim());
|
||
Integer chance = Integer.valueOf(values[1].trim());
|
||
Drop.insertQQ(itemId, chance);
|
||
} catch (NumberFormatException ex) {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!部分数据格式有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
} catch (Exception ex) {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!检查怪物ID和物品ID是否有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
}
|
||
} else {
|
||
JOptionPane.showMessageDialog(null, "批量添加失败!数据格式有误:" + pair, "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
}
|
||
}
|
||
// 刷新怪物爆物数据
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
} else {
|
||
// 正常点击,执行单条数据添加逻辑
|
||
Integer ItemId;
|
||
Integer Chance;
|
||
try {
|
||
ItemId = Integer.valueOf(G_5.getText());
|
||
Chance = Integer.valueOf(G_6.getText());
|
||
} catch (Exception ex) {
|
||
JOptionPane.showMessageDialog(null, "新增失败!检查是否填写了全部参数", "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
return;
|
||
}
|
||
|
||
try {
|
||
Drop.insertQQ(ItemId, Chance);
|
||
} catch (Exception ee) {
|
||
JOptionPane.showMessageDialog(null, "新增失败!检查怪物ID和物品ID是否有误。", "提示", JOptionPane.INFORMATION_MESSAGE);
|
||
return;
|
||
}
|
||
|
||
// 刷新怪物爆物数据
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
}
|
||
|
||
private void 删除全局爆率配置(ActionEvent e) {
|
||
int[] selectedRows = table1.getSelectedRows();
|
||
if (selectedRows.length > 0) {
|
||
DefaultTableModel tableModel = (DefaultTableModel) table1.getModel();
|
||
for (int i = selectedRows.length - 1; i >= 0; i--) {
|
||
int selectedRow = selectedRows[i];
|
||
int modelRow = table1.convertRowIndexToModel(selectedRow);
|
||
Integer Ids = (Integer) tableModel.getValueAt(modelRow, 0);
|
||
Drop.deleteQQId(Ids);
|
||
tableModel.removeRow(modelRow);
|
||
}
|
||
if (tableModel.getRowCount() > 0) {
|
||
int newSelectedRow = Math.min(selectedRows[0], tableModel.getRowCount() - 1);
|
||
table1.setRowSelectionInterval(newSelectedRow, newSelectedRow);
|
||
}
|
||
}
|
||
}
|
||
|
||
private void 独立爆率一键导入(ActionEvent e) {
|
||
|
||
JFileChooser fileChooser = new JFileChooser();
|
||
|
||
|
||
int result = fileChooser.showOpenDialog(null);
|
||
|
||
|
||
if (result == JFileChooser.APPROVE_OPTION) {
|
||
|
||
File selectedFile = fileChooser.getSelectedFile();
|
||
Drop.importDataMob(selectedFile.getAbsolutePath());
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
}
|
||
|
||
private void 独立爆率一键导出(ActionEvent e) {
|
||
|
||
JFileChooser folderChooser = new JFileChooser();
|
||
|
||
folderChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||
|
||
|
||
JRadioButton option1 = new JRadioButton("卡片");
|
||
JRadioButton option2 = new JRadioButton("怪物");
|
||
|
||
ButtonGroup buttonGroup = new ButtonGroup();
|
||
buttonGroup.add(option1);
|
||
buttonGroup.add(option2);
|
||
|
||
option1.setSelected(true);
|
||
|
||
|
||
JPanel optionPanel = new JPanel();
|
||
optionPanel.add(option1);
|
||
optionPanel.add(option2);
|
||
|
||
|
||
folderChooser.setAccessory(optionPanel);
|
||
|
||
|
||
int result = folderChooser.showOpenDialog(null);
|
||
|
||
|
||
if (result == JFileChooser.APPROVE_OPTION) {
|
||
|
||
File selectedFolder = folderChooser.getSelectedFile();
|
||
String selectedMode = option1.isSelected() ? "卡片" : "怪物";
|
||
|
||
Drop.exportData(selectedFolder.getAbsolutePath() + "/独立爆率" + selectedMode + ".txt", selectedMode.equals("卡片") ? Drop.getKPS(): Drop.getMobBLs());
|
||
}
|
||
}
|
||
|
||
private void 全局爆率一键导出(ActionEvent e) {
|
||
|
||
JFileChooser folderChooser = new JFileChooser();
|
||
|
||
folderChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
|
||
|
||
|
||
int result = folderChooser.showOpenDialog(null);
|
||
|
||
|
||
if (result == JFileChooser.APPROVE_OPTION) {
|
||
|
||
File selectedFolder = folderChooser.getSelectedFile();
|
||
Drop.exportData(selectedFolder.getAbsolutePath().toString() + "/全局爆率.txt",Drop.getQQS());
|
||
}
|
||
}
|
||
|
||
private void 全局爆率一键导入(ActionEvent e) {
|
||
|
||
JFileChooser fileChooser = new JFileChooser();
|
||
|
||
|
||
int result = fileChooser.showOpenDialog(null);
|
||
|
||
|
||
if (result == JFileChooser.APPROVE_OPTION) {
|
||
|
||
File selectedFile = fileChooser.getSelectedFile();
|
||
Drop.importDataQQ(selectedFile.getAbsolutePath());
|
||
刷新怪物爆物数据(null);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
private void initComponents() {
|
||
|
||
panel1 = new JPanel();
|
||
button9 = new JButton();
|
||
button10 = new JButton();
|
||
panel2 = new JPanel();
|
||
button11 = new JButton();
|
||
panel3 = new JPanel();
|
||
怪物ID清理 = new JTextField();
|
||
物品ID清理 = new JTextField();
|
||
button13 = new JButton();
|
||
button14 = new JButton();
|
||
label5 = new JLabel();
|
||
label6 = new JLabel();
|
||
panel4 = new JPanel();
|
||
物品ID查询掉落 = new JTextField();
|
||
button15 = new JButton();
|
||
物品名查询掉落 = new JTextField();
|
||
button16 = new JButton();
|
||
怪物ID查询掉落 = new JTextField();
|
||
button17 = new JButton();
|
||
怪物名查询掉落 = new JTextField();
|
||
button18 = new JButton();
|
||
label1 = new JLabel();
|
||
label2 = new JLabel();
|
||
label3 = new JLabel();
|
||
label4 = new JLabel();
|
||
panel5 = new JPanel();
|
||
scrollPane3 = new JScrollPane();
|
||
table2 = new JTable();
|
||
panel6 = new JPanel();
|
||
scrollPane1 = new JScrollPane();
|
||
table1 = new JTable();
|
||
button1 = new JButton();
|
||
button2 = new JButton();
|
||
button5 = new JButton();
|
||
button6 = new JButton();
|
||
button3 = new JButton();
|
||
button4 = new JButton();
|
||
button7 = new JButton();
|
||
button8 = new JButton();
|
||
button19 = new JButton();
|
||
G_1 = new JTextField();
|
||
G_2 = new JTextField();
|
||
G_3 = new JTextField();
|
||
label7 = new JLabel();
|
||
label8 = new JLabel();
|
||
label9 = new JLabel();
|
||
label11 = new JLabel();
|
||
G_5 = new JTextField();
|
||
label12 = new JLabel();
|
||
G_6 = new JTextField();
|
||
|
||
|
||
setLayout(null);
|
||
|
||
|
||
{
|
||
panel1.setBorder(new TitledBorder("\u5371\u9669\u64cd\u4f5c"));
|
||
panel1.setLayout(null);
|
||
|
||
|
||
button9.setText("\u4e00\u952e\u6e05\u7a7a\u72ec\u7acb\u7206\u7387\u8868");
|
||
button9.addActionListener(e -> 一键清空独立爆率表(e));
|
||
panel1.add(button9);
|
||
button9.setBounds(5, 20, 190, button9.getPreferredSize().height);
|
||
|
||
|
||
button10.setText("\u4e00\u952e\u6e05\u7a7a\u5168\u5c40\u7206\u7387\u8868");
|
||
button10.addActionListener(e -> 一键清空全局爆率表(e));
|
||
panel1.add(button10);
|
||
button10.setBounds(5, 60, 190, button10.getPreferredSize().height);
|
||
|
||
{
|
||
|
||
Dimension preferredSize = new Dimension();
|
||
for(int i = 0; i < panel1.getComponentCount(); i++) {
|
||
Rectangle bounds = panel1.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 = panel1.getInsets();
|
||
preferredSize.width += insets.right;
|
||
preferredSize.height += insets.bottom;
|
||
panel1.setMinimumSize(preferredSize);
|
||
panel1.setPreferredSize(preferredSize);
|
||
}
|
||
}
|
||
add(panel1);
|
||
panel1.setBounds(25, 5, 200, 105);
|
||
|
||
|
||
{
|
||
panel2.setBorder(new TitledBorder("\u602a\u7269\u5361\u7247"));
|
||
panel2.setLayout(null);
|
||
|
||
|
||
button11.setText("\u52a0\u8f7d\u5237\u65b0\u602a\u7269\u5361\u7247");
|
||
button11.addActionListener(e -> 加载刷新怪物卡片(e));
|
||
panel2.add(button11);
|
||
button11.setBounds(5, 19, 190, button11.getPreferredSize().height);
|
||
|
||
{
|
||
|
||
Dimension preferredSize = new Dimension();
|
||
for(int i = 0; i < panel2.getComponentCount(); i++) {
|
||
Rectangle bounds = panel2.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 = panel2.getInsets();
|
||
preferredSize.width += insets.right;
|
||
preferredSize.height += insets.bottom;
|
||
panel2.setMinimumSize(preferredSize);
|
||
panel2.setPreferredSize(preferredSize);
|
||
}
|
||
}
|
||
add(panel2);
|
||
panel2.setBounds(25, 120, 200, 65);
|
||
|
||
|
||
{
|
||
panel3.setBorder(new TitledBorder("\u5feb\u6377\u6e05\u7406\u6240\u6709\u7206\u7387"));
|
||
panel3.setLayout(null);
|
||
panel3.add(怪物ID清理);
|
||
怪物ID清理.setBounds(10, 35, 115, 怪物ID清理.getPreferredSize().height);
|
||
panel3.add(物品ID清理);
|
||
物品ID清理.setBounds(10, 85, 115, 物品ID清理.getPreferredSize().height);
|
||
|
||
|
||
button13.setText("\u6e05\u7406");
|
||
button13.addActionListener(e -> 根据怪物ID清理(e));
|
||
panel3.add(button13);
|
||
button13.setBounds(130, 35, 58, 25);
|
||
|
||
|
||
button14.setText("\u6e05\u7406");
|
||
button14.addActionListener(e -> 根据物品ID清理(e));
|
||
panel3.add(button14);
|
||
button14.setBounds(130, 85, 58, 25);
|
||
|
||
|
||
label5.setText("\u6839\u636e\u602a\u7269ID\u6e05\u7406");
|
||
panel3.add(label5);
|
||
label5.setBounds(15, 20, 85, 17);
|
||
|
||
|
||
label6.setText("\u6839\u636e\u7269\u54c1ID\u6e05\u7406");
|
||
panel3.add(label6);
|
||
label6.setBounds(15, 70, 85, 17);
|
||
|
||
{
|
||
|
||
Dimension preferredSize = new Dimension();
|
||
for(int i = 0; i < panel3.getComponentCount(); i++) {
|
||
Rectangle bounds = panel3.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 = panel3.getInsets();
|
||
preferredSize.width += insets.right;
|
||
preferredSize.height += insets.bottom;
|
||
panel3.setMinimumSize(preferredSize);
|
||
panel3.setPreferredSize(preferredSize);
|
||
}
|
||
}
|
||
add(panel3);
|
||
panel3.setBounds(25, 200, 200, 125);
|
||
|
||
|
||
{
|
||
panel4.setBorder(new TitledBorder("\u5feb\u6377\u67e5\u8be2"));
|
||
panel4.setLayout(null);
|
||
panel4.add(物品ID查询掉落);
|
||
物品ID查询掉落.setBounds(10, 40, 115, 物品ID查询掉落.getPreferredSize().height);
|
||
|
||
|
||
button15.setText("\u67e5\u8be2");
|
||
button15.addActionListener(e -> button物品ID查询掉落(e));
|
||
panel4.add(button15);
|
||
button15.setBounds(130, 40, 58, 25);
|
||
panel4.add(物品名查询掉落);
|
||
物品名查询掉落.setBounds(10, 90, 115, 物品名查询掉落.getPreferredSize().height);
|
||
|
||
|
||
button16.setText("\u67e5\u8be2");
|
||
button16.addActionListener(e -> 物品名查询掉落函数(e));
|
||
panel4.add(button16);
|
||
button16.setBounds(130, 90, 58, 25);
|
||
panel4.add(怪物ID查询掉落);
|
||
怪物ID查询掉落.setBounds(10, 140, 115, 怪物ID查询掉落.getPreferredSize().height);
|
||
|
||
|
||
button17.setText("\u67e5\u8be2");
|
||
button17.addActionListener(e -> 怪物ID查询掉落函数(e));
|
||
panel4.add(button17);
|
||
button17.setBounds(130, 140, 58, 25);
|
||
panel4.add(怪物名查询掉落);
|
||
怪物名查询掉落.setBounds(10, 190, 115, 怪物名查询掉落.getPreferredSize().height);
|
||
|
||
|
||
button18.setText("\u67e5\u8be2");
|
||
button18.addActionListener(e -> 怪物名查询掉落函数(e));
|
||
panel4.add(button18);
|
||
button18.setBounds(130, 190, 58, 25);
|
||
|
||
|
||
label1.setText("\u7269\u54c1ID\u67e5\u8be2\u6389\u843d");
|
||
panel4.add(label1);
|
||
label1.setBounds(new Rectangle(new Point(15, 25), label1.getPreferredSize()));
|
||
|
||
|
||
label2.setText("\u7269\u54c1\u540d\u67e5\u8be2\u6389\u843d");
|
||
panel4.add(label2);
|
||
label2.setBounds(15, 75, 85, 17);
|
||
|
||
|
||
label3.setText("\u602a\u7269ID\u67e5\u8be2\u6389\u843d");
|
||
panel4.add(label3);
|
||
label3.setBounds(15, 125, 85, 17);
|
||
|
||
|
||
label4.setText("\u602a\u7269\u540d\u67e5\u8be2\u6389\u843d");
|
||
panel4.add(label4);
|
||
label4.setBounds(15, 175, 85, 17);
|
||
|
||
{
|
||
|
||
Dimension preferredSize = new Dimension();
|
||
for(int i = 0; i < panel4.getComponentCount(); i++) {
|
||
Rectangle bounds = panel4.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 = panel4.getInsets();
|
||
preferredSize.width += insets.right;
|
||
preferredSize.height += insets.bottom;
|
||
panel4.setMinimumSize(preferredSize);
|
||
panel4.setPreferredSize(preferredSize);
|
||
}
|
||
}
|
||
add(panel4);
|
||
panel4.setBounds(25, 340, 200, 235);
|
||
|
||
|
||
{
|
||
panel5.setBorder(new TitledBorder("\u602a\u7269\u72ec\u7acb\u7206\u7387"));
|
||
panel5.setLayout(new GridLayout());
|
||
|
||
|
||
{
|
||
|
||
|
||
table2.setModel(new DefaultTableModel(
|
||
new Object[][] {
|
||
},
|
||
new String[] {
|
||
"\u5e8f\u53f7", "\u602a\u7269\u540d", "\u602a\u7269ID", "\u7269\u54c1\u540d", "\u7269\u54c1ID", "\u7206\u7387"
|
||
}
|
||
) {
|
||
Class<?>[] columnTypes = new Class<?>[] {
|
||
Integer.class, String.class, Integer.class, String.class, Integer.class, Integer.class
|
||
};
|
||
@Override
|
||
public Class<?> getColumnClass(int columnIndex) {
|
||
return columnTypes[columnIndex];
|
||
}
|
||
});
|
||
{
|
||
TableColumnModel cm = table2.getColumnModel();
|
||
cm.getColumn(1).setMinWidth(180);
|
||
cm.getColumn(3).setMinWidth(180);
|
||
}
|
||
scrollPane3.setViewportView(table2);
|
||
}
|
||
panel5.add(scrollPane3);
|
||
}
|
||
add(panel5);
|
||
panel5.setBounds(235, 5, 840, 580);
|
||
|
||
|
||
{
|
||
panel6.setBorder(new TitledBorder("\u5168\u5c40\u7206\u7387"));
|
||
panel6.setLayout(new GridLayout());
|
||
|
||
|
||
{
|
||
|
||
|
||
table1.setModel(new DefaultTableModel(
|
||
new Object[][] {
|
||
},
|
||
new String[] {
|
||
"\u5e8f\u53f7", "\u7269\u54c1\u540d", "\u7269\u54c1ID", "\u7206\u7387"
|
||
}
|
||
) {
|
||
Class<?>[] columnTypes = new Class<?>[] {
|
||
Integer.class, String.class, Integer.class, Integer.class
|
||
};
|
||
@Override
|
||
public Class<?> getColumnClass(int columnIndex) {
|
||
return columnTypes[columnIndex];
|
||
}
|
||
});
|
||
{
|
||
TableColumnModel cm = table1.getColumnModel();
|
||
cm.getColumn(0).setMaxWidth(50);
|
||
cm.getColumn(1).setMinWidth(150);
|
||
}
|
||
scrollPane1.setViewportView(table1);
|
||
}
|
||
panel6.add(scrollPane1);
|
||
}
|
||
add(panel6);
|
||
panel6.setBounds(1080, 5, 410, 580);
|
||
|
||
|
||
button1.setText("\u65b0\u589e\u914d\u7f6e");
|
||
button1.addActionListener(e -> 新增独立爆率配置(e));
|
||
add(button1);
|
||
button1.setBounds(235, 625, 95, button1.getPreferredSize().height);
|
||
|
||
|
||
button2.setText("\u5220\u9664\u914d\u7f6e");
|
||
button2.addActionListener(e -> 独立爆率删除配置(e));
|
||
add(button2);
|
||
button2.setBounds(345, 625, 95, 34);
|
||
|
||
|
||
button5.setText("\u4e00\u952e\u5bfc\u5165");
|
||
button5.addActionListener(e -> 独立爆率一键导入(e));
|
||
add(button5);
|
||
button5.setBounds(455, 625, 95, 34);
|
||
|
||
|
||
button6.setText("\u4e00\u952e\u5bfc\u51fa");
|
||
button6.addActionListener(e -> 独立爆率一键导出(e));
|
||
add(button6);
|
||
button6.setBounds(560, 625, 95, 34);
|
||
|
||
|
||
button3.setText("\u65b0\u589e\u914d\u7f6e");
|
||
button3.addActionListener(e -> 新增全局爆率配置(e));
|
||
add(button3);
|
||
button3.setBounds(1080, 625, 95, 34);
|
||
|
||
|
||
button4.setText("\u5220\u9664\u914d\u7f6e");
|
||
button4.addActionListener(e -> 删除全局爆率配置(e));
|
||
add(button4);
|
||
button4.setBounds(1185, 625, 95, 34);
|
||
|
||
|
||
button7.setText("\u4e00\u952e\u5bfc\u5165");
|
||
button7.addActionListener(e -> 全局爆率一键导入(e));
|
||
add(button7);
|
||
button7.setBounds(1290, 625, 95, 34);
|
||
|
||
|
||
button8.setText("\u4e00\u952e\u5bfc\u51fa");
|
||
button8.addActionListener(e -> 全局爆率一键导出(e));
|
||
add(button8);
|
||
button8.setBounds(1395, 625, 95, 34);
|
||
|
||
|
||
button19.setText("\u5237\u65b0\u602a\u7269\u7206\u7269\u6570\u636e");
|
||
button19.addActionListener(e -> 刷新怪物爆物数据(e));
|
||
add(button19);
|
||
button19.setBounds(45, 585, 155, 60);
|
||
|
||
|
||
G_1.setToolTipText("\u602a\u7269ID");
|
||
add(G_1);
|
||
G_1.setBounds(280, 590, 100, 30);
|
||
|
||
|
||
G_2.setToolTipText("\u7269\u54c1ID");
|
||
add(G_2);
|
||
G_2.setBounds(425, 590, 100, 30);
|
||
|
||
|
||
G_3.setToolTipText("\u7206\u7387");
|
||
add(G_3);
|
||
G_3.setBounds(560, 590, 100, 30);
|
||
|
||
|
||
label7.setText("\u602a\u7269ID");
|
||
add(label7);
|
||
label7.setBounds(new Rectangle(new Point(240, 595), label7.getPreferredSize()));
|
||
|
||
|
||
label8.setText("\u7269\u54c1ID");
|
||
add(label8);
|
||
label8.setBounds(385, 595, 37, 17);
|
||
|
||
|
||
label9.setText("\u7206\u7387");
|
||
add(label9);
|
||
label9.setBounds(530, 595, 37, 17);
|
||
|
||
|
||
label11.setText("\u7269\u54c1ID");
|
||
add(label11);
|
||
label11.setBounds(1085, 595, 37, 17);
|
||
|
||
|
||
G_5.setToolTipText("\u7269\u54c1ID");
|
||
add(G_5);
|
||
G_5.setBounds(1125, 590, 100, 30);
|
||
|
||
|
||
label12.setText("\u7206\u7387");
|
||
add(label12);
|
||
label12.setBounds(1230, 595, 37, 17);
|
||
|
||
|
||
G_6.setToolTipText("\u7206\u7387");
|
||
add(G_6);
|
||
G_6.setBounds(1260, 590, 100, 30);
|
||
|
||
{
|
||
|
||
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);
|
||
}
|
||
|
||
|
||
SetRightL(this.table1);
|
||
SetRightL(this.table2);
|
||
|
||
DefaultTableModel tableModel = (DefaultTableModel) table2.getModel();
|
||
|
||
TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<>(tableModel);
|
||
table2.setRowSorter(sorter);
|
||
|
||
DefaultTableModel tableModel1 = (DefaultTableModel) table1.getModel();
|
||
|
||
TableRowSorter<DefaultTableModel> sorter1 = new TableRowSorter<>(tableModel1);
|
||
table1.setRowSorter(sorter1);
|
||
|
||
|
||
table2.addMouseListener(new MouseInputAdapter() {
|
||
@Override
|
||
public void mouseClicked(MouseEvent e) {
|
||
|
||
int row = table2.rowAtPoint(e.getPoint());
|
||
|
||
if (row >= 0) {
|
||
|
||
Object MonId = table2.getValueAt(row, 2);
|
||
Object ItemId = table2.getValueAt(row, 4);
|
||
Object Chance = table2.getValueAt(row, 5);
|
||
|
||
G_1.setText(MonId.toString());
|
||
G_2.setText(ItemId.toString());
|
||
G_3.setText(Chance.toString());
|
||
}
|
||
}
|
||
});
|
||
|
||
table1.addMouseListener(new MouseInputAdapter() {
|
||
@Override
|
||
public void mouseClicked(MouseEvent e) {
|
||
|
||
int row = table1.rowAtPoint(e.getPoint());
|
||
|
||
if (row >= 0) {
|
||
|
||
Object ItemId = table1.getValueAt(row, 2);
|
||
Object Chance = table1.getValueAt(row, 3);
|
||
|
||
G_5.setText(ItemId.toString());
|
||
G_6.setText(Chance.toString());
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
private JPanel panel1;
|
||
private JButton button9;
|
||
private JButton button10;
|
||
private JPanel panel2;
|
||
private JButton button11;
|
||
private JPanel panel3;
|
||
private JTextField 怪物ID清理;
|
||
private JTextField 物品ID清理;
|
||
private JButton button13;
|
||
private JButton button14;
|
||
private JLabel label5;
|
||
private JLabel label6;
|
||
private JPanel panel4;
|
||
private JTextField 物品ID查询掉落;
|
||
private JButton button15;
|
||
private JTextField 物品名查询掉落;
|
||
private JButton button16;
|
||
private JTextField 怪物ID查询掉落;
|
||
private JButton button17;
|
||
private JTextField 怪物名查询掉落;
|
||
private JButton button18;
|
||
private JLabel label1;
|
||
private JLabel label2;
|
||
private JLabel label3;
|
||
private JLabel label4;
|
||
private JPanel panel5;
|
||
private JScrollPane scrollPane3;
|
||
private JTable table2;
|
||
private JPanel panel6;
|
||
private JScrollPane scrollPane1;
|
||
private JTable table1;
|
||
private JButton button1;
|
||
private JButton button2;
|
||
private JButton button5;
|
||
private JButton button6;
|
||
private JButton button3;
|
||
private JButton button4;
|
||
private JButton button7;
|
||
private JButton button8;
|
||
private JButton button19;
|
||
private JTextField G_1;
|
||
private JTextField G_2;
|
||
private JTextField G_3;
|
||
private JLabel label7;
|
||
private JLabel label8;
|
||
private JLabel label9;
|
||
private JLabel label11;
|
||
private JTextField G_5;
|
||
private JLabel label12;
|
||
private JTextField G_6;
|
||
|
||
}
|