⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f097748b851e001c15e3abbdec04c53b

📁 基于linux操作系统
💻
字号:
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("默认")) {
		if (chb.isSelected()) {
				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);
					JCheckBox cbxf = new JCheckBox(rule.getName(), true);
					cbxf.setBounds(1, Y2, 100, 15);
					cbxf.setBackground(Color.white);
					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);
					JCheckBox cbxf = new JCheckBox(rule.getName(), true);
					cbxf.setBounds(1, Y2, 100, 15);
					cbxf.setBackground(Color.white);
					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("默认")) {
			if (chb.isSelected()) {
					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);
							JCheckBox cbxf = new JCheckBox(rule.getName(), true);
							cbxf.setBounds(1, Y2, 100, 15);
							cbxf.setBackground(Color.white);
							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);
							JCheckBox cbxf = new JCheckBox(rule.getName(), true);
							cbxf.setBackground(Color.white);
							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);
				System.out.println("MainWindow 281行");
			} else if (e.getActionCommand().equals("确定")) {
				//if (cb != null && cb.getLabel().equals("自定义")) {
				if(chb.isSelected())
					if (FilesIO.saveRuleListToFile(fwa.serverRuleList)
							&& FilesIO
									.writeAllRulesToScript(fwa.serverRuleList)) {
						JOptionPane.showMessageDialog(null, "已经按您的自定义规则应用!");
					}
				//} else if (cb != null && cb.getLabel().equals("默认")) {
			} else if (chb.isSelected()) {
					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);
			}
		}

	public static void main(String [] a){
		new MainWindow(new FireWallApp());
	}
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -