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);
}
}
