📄 d0f0e4f0a41d001c1390b202b6bd942d
字号:
package deng;
import java.awt.Checkbox;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class MainWindow {
JFrame frame;
FireWallApp fwa;
JButton jb1;
JButton addB;
// CheckboxGroup cbg = new CheckboxGroup();
//
// Checkbox chb = new Checkbox("默认", cbg, true);
//
// Checkbox chb2 = new Checkbox("自定义", cbg, false);
//
// Checkbox cbx0 = new Checkbox("eth0", true);
//
// Checkbox cbx1 = new Checkbox("ppp0");
// CheckboxGroup cbg = new CheckboxGroup();
//
// JCheckBox chb = new JCheckBox("默认", cbg, true);
//
// JCheckBox chb2 = new JCheckBox("自定义", cbg, false);
ButtonGroup cbg = new ButtonGroup();
JRadioButton chb = new JRadioButton("默认", true);
JRadioButton chb2 = new JRadioButton("自定义", false);
JCheckBox cbx0 = new JCheckBox("eth0", true);
JCheckBox cbx1 = new JCheckBox("ppp0");
int Y1 = 1;
int Y2 = 1;
JPanel panel2 = new JPanel();
JPanel panel2_2_1 = new JPanel(new GridLayout(0, 1));
public MainWindow(FireWallApp fwa) {
this.fwa = fwa;
init();
}
public void init() {
fwa.serverRuleList = (MyArrayList) FilesIO
.readRuleListFromFile("E:\\FireWall\\RuleList.txt");
frame = new JFrame("网络防火墙配置");
fwa.mainFrame = frame;
frame.setBounds(500, 200, 300, 400);
frame.getContentPane().setBackground(Color.orange);
frame.setResizable(false);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
frame.dispose();
System.exit(0);
}
});
frame.setLayout(null);
JLabel label = new JLabel();
label.setText("请选择设置方式");
label.setBounds(10, 10, 100, 20);
cbg.add(chb);
cbg.add(chb2);
if (fwa.serverRuleList.size() > 0) {
// chb.setState(false);
// chb2.setState(true);
chb.setSelected(false);
chb2.setSelected(true);
}
chb.setBounds(110, 10, 50, 20);
MyItemListener myListener = new MyItemListener();
chb.addItemListener(myListener);
chb2.setBounds(170, 10, 50, 20);
chb2.addItemListener(myListener);
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBounds(0, 0, 300, 30);
panel.setBackground(Color.white);
panel.add(label);
panel.add(chb);
panel.add(chb2);
panel2.setBackground(Color.orange);
panel2.setLayout(null);
panel2.setBounds(0, 30, 300, 290);
JLabel label2_1 = new JLabel("信任的设备:");
label2_1.setBounds(10, 30, 90, 20);
JLabel label2_2 = new JLabel("允许的服务:");
label2_2.setBounds(10, 110, 90, 20);
addB = new JButton("添加");
addB.setBounds(10, 150, 80, 25);
addB.addActionListener(new MyActionListener());
JPanel panel2_1_1 = new JPanel(new GridLayout(0, 1));
// panel2_1_1.setSize(190,50);
panel2_1_1.setBackground(Color.white);
JScrollPane panel2_1 = new JScrollPane(panel2_1_1);
panel2_1
.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
panel2_1.setBounds(100, 20, 190, 50);
panel2_1.setBackground(Color.white);
cbx0.setBounds(1, Y1, 50, 15);
Y1 = Y1 + 16;
cbx1.setBounds(1, Y1, 50, 15);
Y1 = Y1 + 16;
panel2_1_1.add(cbx0);
panel2_1_1.add(cbx1);
panel2_2_1.setBackground(Color.white);
JScrollPane panel2_2 = new JScrollPane(panel2_2_1,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
panel2_2.setBounds(100, 95, 190, 184);
panel2_2.setBackground(Color.white);
Checkbox cb = cbg.getSelectedCheckbox();
if (cb != null)
if (cb.getLabel().equals("默认")) {
addB.setEnabled(false);
cbx0.setEnabled(false);
cbx1.setEnabled(false);
panel2_2_1.removeAll();
Y2 = 1;
for (int i = 0; i < fwa.defaultServerRuleList.size(); i++) {
Rule rule = new Rule();
rule = (Rule) fwa.defaultServerRuleList.get(i);
Checkbox cbxf = new Checkbox(rule.getName(), true);
cbxf.setBounds(1, Y2, 100, 15);
Y2 = Y2 + 16;
panel2_2_1.add(cbxf);
}
} else {
fwa.flag = true;
panel2_2_1.removeAll();
Y2 = 1;
for (int i = 0; i < fwa.serverRuleList.size(); i++) {
Rule rule = new Rule();
rule = (Rule) fwa.serverRuleList.get(i);
Checkbox cbxf = new Checkbox(rule.getName(), true);
cbxf.setBounds(1, Y2, 100, 15);
Y2 = Y2 + 16;
panel2_2_1.add(cbxf);
}
addB.setEnabled(true);
cbx0.setEnabled(true);
cbx1.setEnabled(true);
}
panel2.add(label2_1);
panel2.add(panel2_1);
panel2.add(label2_2);
panel2.add(panel2_2);
panel2.add(addB);
JPanel panel3 = new JPanel();
panel3.setBackground(Color.orange);
panel3.setLayout(null);
panel3.setBounds(0, 320, 300, 80);
jb1 = new JButton("确定");
jb1.addActionListener(new MyActionListener());
JButton jb0 = new JButton("取消");
jb0.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (fwa.subFrame != null)
fwa.subFrame.dispose();
fwa.mainFrame.dispose();
System.exit(0);
}
});
jb1.setBounds(80, 15, 80, 25);
jb0.setBounds(180, 15, 80, 25);
panel3.add(jb1);
panel3.add(jb0);
frame.getContentPane().add(panel);
frame.getContentPane().add(panel2);
frame.getContentPane().add(panel3);
frame.getContentPane().setBackground(Color.orange);
frame.setVisible(true);
}
class MyItemListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
Checkbox cb = cbg.getSelectedCheckbox();
if (cb != null)
if (cb.getLabel().equals("默认")) {
addB.setEnabled(false);
cbx1.setState(false);
cbx0.setEnabled(false);
cbx1.setEnabled(false);
if (fwa.flag == true) {
fwa.flag = false;
panel2_2_1.removeAll();
Y2 = 1;
for (int i = 0; i < fwa.defaultServerRuleList.size(); i++) {
Rule rule = new Rule();
rule = (Rule) fwa.defaultServerRuleList.get(i);
Checkbox cbxf = new Checkbox(rule.getName(), true);
cbxf.setBounds(1, Y2, 100, 15);
Y2 = Y2 + 16;
panel2_2_1.add(cbxf);
}
}
} else {
fwa.flag = true;
if (fwa.serverRuleList.size() != 0) {
panel2_2_1.removeAll();
Y2 = 1;
for (int i = 0; i < fwa.serverRuleList.size(); i++) {
Rule rule = new Rule();
rule = (Rule) fwa.serverRuleList.get(i);
Checkbox cbxf = new Checkbox(rule.getName(), true);
cbxf.setBounds(1, Y2, 100, 15);
Y2 = Y2 + 16;
panel2_2_1.add(cbxf);
}
}
addB.setEnabled(true);
cbx0.setEnabled(true);
cbx1.setEnabled(true);
}
}
}
class MyActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Checkbox cb = cbg.getSelectedCheckbox();
if (e.getActionCommand().equals("添加")) {
new SubWindow(fwa);
fwa.subFrame.setVisible(true);
} else if (e.getActionCommand().equals("确定")) {
if (cb != null && cb.getLabel().equals("自定义")) {
if (FilesIO.saveRuleListToFile(fwa.serverRuleList)
&& FilesIO
.writeAllRulesToScript(fwa.serverRuleList)) {
JOptionPane.showMessageDialog(null, "已经按您的自定义规则应用!");
}
} else if (cb != null && cb.getLabel().equals("默认")) {
if (FilesIO
.writeAllRulesToScript(fwa.defaultServerRuleList))
JOptionPane.showMessageDialog(null, "已经按默认规则应用!");
} else
JOptionPane.showMessageDialog(null, "出错!");
if (fwa.subFrame != null)
fwa.subFrame.dispose();
fwa.mainFrame.dispose();
System.exit(0);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -