天天看點

Java圖形化界面輸入輸出

JavaGUI,

輸入輸出框,多選按鈕,資料總管,檔案上傳,重置圖形化,滾動條。

package com.westos.gui;

import com.westos.codeaudit.catchcode.entity.VersionManage;
import com.westos.core.DoScan;
import com.westos.utils.JTextFieldHintListener;
import com.westos.utils.StartTimer;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.io.File;

import javax.swing.*;

public class Index extends JFrame {

    // 定義元件
    JCheckBox jcb1, jcb2; //複選框
    JPanel jp1, jp2, jp3, jp4;
    JLabel jlb1, jlb2;
    JButton jb1, jb2, btn;
    JTextField jtf1, jtf3, textField;
    //JPasswordField jpf1; //密碼


    // 構造函數
    public Index() {

        jp1 = new JPanel();
        jp2 = new JPanel();
        jp3 = new JPanel();
        jp4 = new JPanel();

        jlb1 = new JLabel("檔案ID:");
        jlb2 = new JLabel("請選擇檔案:");

        textField = new JTextField(20);// 文本域
        btn = new JButton("浏覽");// 鈕1


        jcb1 = new JCheckBox("sql注入掃描");
        jcb2 = new JCheckBox("xss掃描");

        jb1 = new JButton("開始");
        jb2 = new JButton("重置");

        jtf1 = new JTextField(20);
        jtf3 = new JTextField(20);

        jtf3.addFocusListener(new JTextFieldHintListener("1代表sql,2代表xss", jtf3));
        //設定布局為4行1列
        GridLayout layout = new GridLayout(4, 1);
        this.setLayout(layout);

        // 加入各個元件
        jp1.add(jlb1);
        jp1.add(jtf1);

        jp2.add(jlb2);
        jp2.add(textField);
        jp2.add(btn);

        jp3.add(jcb1);
        jp3.add(jcb2);
        jp4.add(jb1);
        jp4.add(jb2);

        // 加入到JFrame
        this.add(jp1);
        this.add(jp2);
        this.add(jp3);
        this.add(jp4);

        this.setSize(500, 300);
        this.setTitle("代碼審計");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);

        //使得視窗在螢幕中心顯示
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        this.setBounds((screenSize.width - 500) / 2, (screenSize.height - 300) / 2, 500, 300);

        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser chooser = new JFileChooser();
                chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                JLabel jLabel = new JLabel();
                chooser.showDialog(jLabel, "選擇");
                File file = chooser.getSelectedFile();
                textField.setText(file.getAbsoluteFile().toString());
            }
        });
        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                jtf1.setText("");
                textField.setText("");
                jcb1.setSelected(false);
                jcb2.setSelected(false);
            }
        });
        jb1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    int id = Integer.parseInt(jtf1.getText());
                    String dir = textField.getText();
                    String way = null;
                    if (jcb1.isSelected() && jcb2.isSelected()) {
                        System.out.println(jcb1.getText() + jcb2.getText());
                        way = "3";
                    } else if (jcb1.isSelected()) {
                        System.out.println(jcb1.getText());
                        way = "1";//sql
                    } else if (jcb2.isSelected()) {
                        System.out.println(jcb2.getText());
                        way = "2";//xss
                    }
                    System.out.println(id + "==" + dir + "==" + way);
                    VersionManage versionManage = new VersionManage();
                    versionManage.setVerid(id);
                    versionManage.setPropath(dir);
                    versionManage.setScanway(way);
                    DoScan doScan = new DoScan(versionManage);
                    new StartTimer(doScan);
                    doScan.doScan();
                } catch (Exception ex) {
                    System.out.println("輸入有誤");
                }
            }
        });

    }

    public static void main(String[] args) {

        new Index();

    }
}

           

結果:

Java圖形化界面輸入輸出
Java圖形化界面輸入輸出
package com.westos.gui;

import com.westos.bean.RiskBean;
import com.westos.codeaudit.catchcode.entity.VersionManage;

import javax.swing.*;
import java.awt.*;
import java.util.List;

public class Index2 extends JFrame {
    private List list = null;
    VersionManage versionManage = null;
    // 定義元件
    JPanel jp1;

    // 構造函數
    public Index2(List<RiskBean> list, VersionManage versionManage) {
        this.list = list;
        this.versionManage = versionManage;
        jp1 = new JPanel();
        JTextArea textArea = new JTextArea(40, 85);
        textArea.setLineWrap(true);//設定自動換行
        textArea.setWrapStyleWord(true);//設定以單詞為整體
        textArea.setEditable(false);//設定無法編輯
        //将TextArea放入滾動條裡面去
        JScrollPane scroll = new JScrollPane(textArea);
        //把定義的JTextArea放到JScrollPane裡面去
        //分别設定水準和垂直滾動條自動出現
        scroll.setHorizontalScrollBarPolicy(
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        scroll.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

        textArea.append("任務編号: " + versionManage.getVerid() + "\n");
        textArea.append("任務路徑: " + versionManage.getPropath() + "\n\n");
        int num = 0;
        if (list.size()>0) {
            for (RiskBean riskBean : list) {
                textArea.append(" 漏洞編号:" + ++num);
                textArea.append("\n");
                textArea.append(" 漏洞名稱:" + riskBean.getRiskname().trim());
                textArea.append("\n");
                textArea.append(" 檔案路徑:" + riskBean.getFilepath().trim());
                textArea.append("\n");
                textArea.append(" 漏洞所在行号:" + riskBean.getRownum().toString());
                textArea.append("\n");
                textArea.append(" 漏洞代碼:\n" + riskBean.getRiskcode().trim());
                textArea.append("\n\n");

            }
        }else {
            textArea.append("未檢查出漏洞");
        }


        this.setLayout(new GridLayout(1, 1));
        jp1.add(scroll);
        this.add(jp1);
        this.setSize(1000, 700);
        this.setTitle("代碼審計");
        this.setVisible(true);

        //讓視窗顯示在螢幕中央
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        this.setBounds((screenSize.width - 1000) / 2, (screenSize.height - 700) / 2, 1000, 700);

    }


}

           

結果:

亂碼是windows的原因,linux上沒有亂碼

Java圖形化界面輸入輸出