Java+JTabbedPane+JTable

package loadtest;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class LoadFrame extends JFrame implements ActionListener, Runnable {
private int WIDTH = 800;// 窗口的宽
private int HEIGHT = 500;// 窗口的高
private int north_HEGHT = 50;// 北部面板的高
private int east_WIDTH = 170;
int row = 0;// account.txt 中数据的行数
String user_temp = “”;
String password_temp = “”;
String[] user;
String[] password;
JTextArea jta_console;
String str_control = “”;
JTable jtable;

public LoadFrame() {
    this.setTitle("小说采集器v1.0");
    this.setBounds(5, 5, WIDTH, HEIGHT);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setIconImage(new ImageIcon("imgs/logo.png").getImage());

// this.setAlwaysOnTop(true);

    JPanel jp_north = new JPanel();
    JPanel jp_center = new JPanel();
    JPanel jp_north_left = new JPanel();
    JPanel jp_north_right = new JPanel();
    JPanel jp_east = new JPanel();

    /*-----------边界布局设置-----------------*/
    this.setLayout(new BorderLayout());
    this.add(jp_north, BorderLayout.NORTH);
    this.add(jp_center, BorderLayout.CENTER);
    this.add(jp_east, BorderLayout.EAST);

    /*-----------北部面板设置-----------------*/
    jp_north.setPreferredSize(new Dimension(WIDTH, north_HEGHT));
    jp_north.setLayout(null);
    jp_north_left.setBounds(0, 0, WIDTH / 3 * 2, north_HEGHT);
    jp_north_right.setBounds(WIDTH / 3 * 2, 0, WIDTH / 3 * 1, north_HEGHT);
    jp_north.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
    jp_north.add(jp_north_left);
    jp_north.add(jp_north_right);
    jp_north_left.setLayout(new GridLayout(1, 3));
    String[] str_jb_menu_name = { "AAA", "BBB", "CCC" };
    JButton[] jb = new JButton[str_jb_menu_name.length];
    for (int i = 0; i < str_jb_menu_name.length; i++) {
        jb[i] = new JButton(str_jb_menu_name[i]);
        jp_north_left.add(jb[i]);
        jb[i].setFocusable(false);
    }

    /*-----------中部面板设置-----------------*/
    jp_center.setBackground(Color.LIGHT_GRAY);
    JTabbedPane jtbPane = new JTabbedPane(JTabbedPane.TOP, JTabbedPane.WRAP_TAB_LAYOUT);
    jtbPane.setPreferredSize(new Dimension(600, 400));
    jp_center.add(jtbPane);
    JPanel jp1 = new JPanel();
    JPanel jp2 = new JPanel();
    jp1.setLayout(new BorderLayout());
    jtbPane.add(jp1, "   帐户管理      ");
    jtbPane.add(jp2, "   xxxx   ");

    // Jtable设置,添加数据入表中
    String[] table_header = { "账号", "密码", "状态1", "状态2" };
    this.account();
    user = new String[row];
    password = new String[row];
    user = user_temp.split(" ");
    password = password_temp.split(" ");
    Object[][] object = new Object[row][table_header.length];
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < table_header.length; j++)
            switch (j) {
            case 0:
                object[i][j] = user[i];
                break;
            case 1:
                object[i][j] = password[i];
                break;
            case 2:
                object[i][j] = "未登录";
                break;
            case 3:
                object[i][j] = "未完成";
                break;

            default:
                System.out.println("未查到任何数据!");
                break;
            }
    }
    jtable = new JTable(object, table_header);
    DefaultTableCellRenderer dtcr = new DefaultTableCellRenderer();
    dtcr.setHorizontalAlignment(DefaultTableCellRenderer.CENTER);
    jtable.setDefaultRenderer(Object.class, dtcr);
    jtable.getTableHeader().setReorderingAllowed(false);// 设置表头不可拖动
    JScrollPane jscrollPane = new JScrollPane(jtable);
    jp1.add(jscrollPane, BorderLayout.CENTER);

    JPanel jp_manager = new JPanel();
    jp_manager.setPreferredSize(new Dimension(100, 300));
    jp1.add(jp_manager, BorderLayout.EAST);

    String[] str_managerbtn = { "一键登录", "action2", "action3" };
    JButton[] jb_manager = new JButton[str_managerbtn.length];
    for (int i = 0; i < str_managerbtn.length; i++) {
        jb_manager[i] = new JButton(str_managerbtn[i]);
        jb_manager[i].setPreferredSize(new Dimension(90, 30));
        jb_manager[i].setFocusable(false);
        jb_manager[i].addActionListener(this);
        jp_manager.add(jb_manager[i]);
    }

    /*-----------东部面板设置-----------------*/
    jp_east.setBackground(Color.pink);
    jp_east.setPreferredSize(new Dimension(east_WIDTH, 50));
    JButton jb_resetConsole = new JButton("清空控制台");
    jb_resetConsole.addActionListener(this);
    jb_resetConsole.setPreferredSize(new Dimension(120, 22));
    jta_console = new JTextArea();
    JScrollPane jscrollPane_console = new JScrollPane(jta_console);
    jscrollPane_console.setPreferredSize(new Dimension(east_WIDTH - 10, HEIGHT - north_HEGHT - 80));
    jta_console.setLineWrap(true);
    jb_resetConsole.setFocusable(false);
    jp_east.add(jb_resetConsole);
    jp_east.add(jscrollPane_console);

    this.setVisible(true);
}

private void account() {
    try {
        BufferedReader bufReader = new BufferedReader(new InputStreamReader(new BufferedInputStream(
                new FileInputStream("txt/account.txt"))));
        String str_buftemp = "";
        while ((str_buftemp = bufReader.readLine()) != null) {
            user_temp += ((str_buftemp.split(" "))[0] + " ");
            password_temp += ((str_buftemp.split(" "))[1] + " ");
            row++;
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) {
    new LoadFrame();

}

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getActionCommand() == "一键登录") {
        Thread thread_load = new Thread(this);
        thread_load.start();
    }
    if (e.getActionCommand() == "清空控制台") {
        jta_console.setText("");
    }
}

@Override
public void run() {
    String str_doing = "线程正在执行!请稍等......";
    String str_end = "线程操作执行完毕!";
    BaiDuLoad[] baiduLoad = new BaiDuLoad[row];
    for (int i = 0; i < row; i++) {
        jta_console.setText(str_control + str_doing);
        if (i == 0) {
            user[i] = user[i].substring(1);
        }
        baiduLoad[i] = new BaiDuLoad(user[i], password[i]);
        str_control += user[i] + ": " + "\r\n" + baiduLoad[i].str_status + "\r\n\r\n";
        jta_console.setText(str_control);
        jtable.setValueAt("已登录", i, 2);

    }
    jta_console.setText(str_control + str_end);

}

}
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值