📄 indialog.java
字号:
import java.awt.*;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.border.*;
public class InDialog extends JDialog implements ActionListener
{
private JLabel pathL,typeL;
private JTextField path;
private JButton open,done,ok,cancel;
private JTable table;
private JComboBox type;
private JCheckBox hide,save;
private JPopupMenu menu;
private JMenuItem[] item;
private InTableModel model;
private Vector<QQData> cells;
public InDialog(JDialog dialog)
{
super(dialog,"导入账号",true);
pathL=new JLabel("地址");
path=new JTextField();
open=new JButton("...");
open.addActionListener(this);
done=new JButton("确定");
done.addActionListener(this);
menu=new JPopupMenu();
item=new JMenuItem[5];
item[0]=new JMenuItem("选择");
item[1]=new JMenuItem("取消选择");
item[2]=new JMenuItem("全选");
item[3]=new JMenuItem("全不选");
item[4]=new JMenuItem("反选");
for(int i=0;i<item.length;i++)
{
menu.add(item[i]);
item[i].addActionListener(this);
if(i==1||i==3)
menu.addSeparator();
}
cells=new Vector<QQData>(1,1);
model=new InTableModel(cells);
table=new JTable(model);
table.addMouseListener
(
new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int id=e.getButton();
if(id==e.BUTTON3)
{
int row=table.rowAtPoint(e.getPoint());
if(row!=-1)
table.setRowSelectionInterval(row,row);
menu.show(table,e.getX(),e.getY());
}
}
}
);
table.setGridColor(EnterQQ.GridColor);
table.setRowHeight(20);
table.setDefaultRenderer(JLabel.class,new LabelCellRenderer(cells));
TableColumn checkColumn=table.getColumn("");
checkColumn.setMaxWidth(20);
JScrollPane pane=new JScrollPane(table);
pane.addMouseListener
(
new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int id=e.getButton();
if(id==e.BUTTON3)
{
int row=table.rowAtPoint(new Point(e.getX(),e.getY()));
if(row!=-1)
table.setRowSelectionInterval(row,row);
menu.show(table,e.getX(),e.getY());
}
}
}
);
typeL=new JLabel("执行模式");
type=new JComboBox(new String[]{"QQ","TM","QQ游戏"});
type.addActionListener(this);
hide=new JCheckBox("隐身登录");
hide.addActionListener(this);
save=new JCheckBox("记住密码以备查看",EnterQQ.getOptions().isCodeSave());
ok=new JButton("确定");
ok.addActionListener(this);
cancel=new JButton("取消");
cancel.addActionListener(this);
JPanel panel=new JPanel();
panel.setLayout(null);
panel.setBorder(BorderFactory.createTitledBorder(null,"选择导入文件",TitledBorder.LEADING,TitledBorder.TOP,EnterQQ.FONT,Color.orange.darker()));
pathL.setBounds(10,20,25,20);
path.setBounds(40,20,180,20);
open.setBounds(220,20,30,20);
done.setBounds(255,20,60,20);
pane.setBounds(10,50,310,140);
typeL.setBounds(25,200,60,20);
type.setBounds(85,200,80,20);
hide.setBounds(20,225,80,20);
save.setBounds(20,250,140,20);
panel.add(pathL);
panel.add(path);
panel.add(open);
panel.add(done);
panel.add(pane);
panel.add(typeL);
panel.add(type);
panel.add(hide);
panel.add(save);
JPanel button=new JPanel();
button.add(ok);
button.add(cancel);
add("Center",panel);
add("South",button);
Point loc=dialog.getLocation();
setBounds((int)loc.getX()+10,(int)loc.getY()+10,330,355);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object o=e.getSource();
if(o==open)
{
FileDialog dialog=new FileDialog(this,"打开账号文件/TXT格式",FileDialog.LOAD);
dialog.setVisible(true);
if(dialog.getFile()==null)
return;
if(dialog.getFile().endsWith(".txt"))
{
path.setText(dialog.getDirectory()+dialog.getFile());
}
else
{
EnterQQ.KIT.beep();
JOptionPane.showMessageDialog(null,"账号文件格式不对","警告信息",JOptionPane.WARNING_MESSAGE,EnterQQ.WARNING);
}
}
else if(o==done)
{
File file=new File(path.getText());
try
{
BufferedReader reader=new BufferedReader(new FileReader(file));
while(reader.ready())
{
String line=reader.readLine();
String[] data=line.split("\\s+",0);
if(data.length<2)
{
JOptionPane.showMessageDialog(null,"文档内容不全,请更正后再导入!","警告信息",JOptionPane.INFORMATION_MESSAGE,EnterQQ.WARNING);
return;
}
QQData qq=new QQData(data[0],data[1]);
qq.setType(type.getSelectedIndex());
model.addData(qq);
}
model.fireTableDataChanged();
}
catch(Exception ee)
{}
}
else if(o==type)
{
int[] rows=table.getSelectedRows();
for(int r:rows)
{
QQData qq=cells.get(r);
qq.setType(type.getSelectedIndex());
}
model.fireTableDataChanged();
}
else if(o==hide)
{
int[] rows=table.getSelectedRows();
for(int r:rows)
{
QQData qq=cells.get(r);
qq.setHide(hide.isSelected());
}
model.fireTableDataChanged();
}
else if(o==ok)
{
if(table.getRowCount()==0)
return;
int count=0;
for(int i=0;i<cells.size();i++)
{
if((Boolean)model.getValueAt(i,0))
{
count++;
EnterQQ.getQQData().add(cells.get(i));
}
}
EnterQQ.getTableModel().fireTableDataChanged();
EnterQQ.getOptions().setCodeSave(save.isSelected());
EnterQQ.KIT.beep();
JOptionPane.showMessageDialog(null," 成功导入"+count+"个账号","提示信息",JOptionPane.INFORMATION_MESSAGE,EnterQQ.ICON);
dispose();
}
else if(o==cancel)
{
dispose();
}
else if(o==item[0])
{
int[] rows=table.getSelectedRows();
for(int r:rows)
{
QQData qq=cells.get(r);
qq.setSelected(true);
}
model.fireTableDataChanged();
}
else if(o==item[1])
{
int[] rows=table.getSelectedRows();
for(int r:rows)
{
QQData qq=cells.get(r);
qq.setSelected(false);
}
model.fireTableDataChanged();
}
else if(o==item[2])
{
for(int r=0;r<table.getRowCount();r++)
{
QQData qq=cells.get(r);
qq.setSelected(true);
}
model.fireTableDataChanged();
}
else if(o==item[3])
{
for(int r=0;r<table.getRowCount();r++)
{
QQData qq=cells.get(r);
qq.setSelected(false);
}
model.fireTableDataChanged();
}
else if(o==item[4])
{
for(int r=0;r<table.getRowCount();r++)
{
if(!table.isRowSelected(r))
{
QQData qq=cells.get(r);
qq.setSelected(true);
}
}
model.fireTableDataChanged();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -