📄 managedialog.java
字号:
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.border.*;
public class ManageDialog extends JDialog implements ActionListener
{
private JTable table;
private JButton add,edit,delete,in,out,refurbish,close;
private JCheckBox safe;
public ManageDialog(EnterQQ qq)
{
super(qq,"账号管理器",true);
table=new JTable(EnterQQ.getTableModel());
table.setGridColor(EnterQQ.GridColor);
table.setRowHeight(20);
table.setDefaultRenderer(JLabel.class,new LabelCellRenderer(EnterQQ.getQQData()));
TableColumn checkColumn=table.getColumn("");
table.removeColumn(checkColumn);
JScrollPane pane=new JScrollPane(table);
add=new JButton("新建");
edit=new JButton("修改");
delete=new JButton("删除");
in=new JButton("导入");
out=new JButton("导出");
add.addActionListener(this);
edit.addActionListener(this);
delete.addActionListener(this);
in.addActionListener(this);
out.addActionListener(this);
JPanel buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(5,1,0,5));
buttonPanel.add(add);
buttonPanel.add(edit);
buttonPanel.add(delete);
buttonPanel.add(in);
buttonPanel.add(out);
safe=new JCheckBox("安全关闭",EnterQQ.getOptions().isSafeClose());
safe.setFont(EnterQQ.FONT);
refurbish=new JButton("刷新");
close=new JButton("关闭");
refurbish.addActionListener(this);
close.addActionListener(this);
setLayout(null);
pane.setBounds(10,10,300,150);
buttonPanel.setBounds(320,20,60,130);
safe.setBounds(10,180,100,20);
refurbish.setBounds(200,180,80,20);
close.setBounds(290,180,80,20);
add(pane);
add(buttonPanel);
add(safe);
add(refurbish);
add(close);
Point loc=qq.getLocation();
setBounds((int)loc.getX()+10,(int)loc.getY()+10,395,245);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object o=e.getSource();
if(o==add)
{
new Accounts(this,"新建账号",0,"","","",false,-1);
}
else if(o==edit)
{
int r=table.getSelectedRow();
if(r==-1)
return;
QQData data=(QQData)EnterQQ.getQQData().get(r);
int type=data.getType();
String name=data.getName();
String number=data.getNumber();
String code=data.getQQCode().substring(12);
boolean hide=data.isHide();
new Accounts(this,"修改账号",type,name,number,code,hide,r);
}
else if(o==delete)
{
EnterQQ.KIT.beep();
int result=JOptionPane.showConfirmDialog(null," 确定要删除选中账号吗?","警告信息",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE,EnterQQ.WARNING);
if(result==JOptionPane.YES_OPTION)
{
int[] rows=table.getSelectedRows();
if(rows.length==0)
return;
for(int i=rows.length-1;i>-1;i--)
EnterQQ.getQQData().remove(rows[i]);
EnterQQ.getTableModel().fireTableDataChanged();
}
}
else if(o==in)
{
new InDialog(this);
}
else if(o==out)
{
if(table.getRowCount()==0)
return;
new OutDialog(this);
}
else if(o==refurbish)
{
EnterQQ.getTableModel().fireTableDataChanged();
//table.repaint();
}
else if(o==close)
{
EnterQQ.getOptions().setSafeClose(safe.isSelected());
dispose();
}
}
private class Accounts extends JDialog implements ActionListener,ItemListener
{
private JLabel typeL,nameL,numberL,codeL;
private JComboBox type;
private JCheckBox self,hide,save;
private JTextField name,number;
private JPasswordField code;
private JButton ok,cancel;
private int row;
private boolean codeChanged;
public Accounts(JDialog dialog,String title,int aType,String aName,String aNumber,String aCode,boolean aHide,int row)
{
super(dialog,title,true);
this.row=row;
codeChanged=false;
typeL=new JLabel("执行模式");
type=new JComboBox(new String[]{"QQ","TM","QQ游戏"});
type.setSelectedIndex(aType);
self=new JCheckBox("使用自定义名字");
self.setSelected(!aName.equals(aNumber));
self.addItemListener(this);
nameL=new JLabel("设定名字",JLabel.RIGHT);
name=new JTextField(aName);
name.setEnabled(self.isSelected());
numberL=new JLabel("QQ号码 ",JLabel.RIGHT);
number=new JTextField(aNumber);
number.addKeyListener
(
new KeyAdapter()
{
public void keyReleased(KeyEvent e)
{
if(!self.isSelected())
name.setText(number.getText());
}
}
);
codeL=new JLabel("QQ密码 ",JLabel.RIGHT);
code=new JPasswordField(aCode,12);
code.addKeyListener
(
new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
codeChanged=true;
}
}
);
hide=new JCheckBox("隐身登录",aHide);
save=new JCheckBox("保存密码以备查看",EnterQQ.getOptions().isCodeSave());
ok=new JButton("确定");
ok.addActionListener(this);
cancel=new JButton("取消");
cancel.addActionListener(this);
JPanel panel=new JPanel();
typeL.setBounds(30,20,90,20);
type.setBounds(100,20,100,20);
self.setBounds(30,50,150,20);
nameL.setBounds(5,80,80,20);
name.setBounds(90,80,120,20);
numberL.setBounds(5,110,80,20);
number.setBounds(90,110,120,20);
codeL.setBounds(5,140,80,20);
code.setBounds(90,140,120,20);
hide.setBounds(40,170,100,20);
save.setBounds(40,200,160,20);
panel.setLayout(null);
panel.add(typeL);
panel.add(type);
panel.add(self);
panel.add(nameL);
panel.add(name);
panel.add(numberL);
panel.add(number);
panel.add(codeL);
panel.add(code);
panel.add(hide);
panel.add(save);
panel.setBorder(BorderFactory.createTitledBorder(null,"请输入账号信息",TitledBorder.LEADING,TitledBorder.TOP,EnterQQ.FONT,Color.orange.darker()));
JPanel buttonPanel=new JPanel();
buttonPanel.add(ok);
buttonPanel.add(cancel);
add("Center",panel);
add("South",buttonPanel);
Point loc=dialog.getLocation();
setBounds((int)loc.getX()+10,(int)loc.getY()+10,245,295);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object o=e.getSource();
if(o==ok)
{
int aType=type.getSelectedIndex();
String aName=name.getText();
boolean aHide=hide.isSelected();
String aNumber=number.getText();
String aCode=code.getText();
if(aNumber.equals(""))
{
EnterQQ.KIT.beep();
JOptionPane.showMessageDialog(null," QQ号码不能为空","警告信息",JOptionPane.WARNING_MESSAGE,EnterQQ.WARNING);
return;
}
if(aCode.equals(""))
{
EnterQQ.KIT.beep();
JOptionPane.showMessageDialog(null," QQ密码不能为空","警告信息",JOptionPane.WARNING_MESSAGE,EnterQQ.WARNING);
return;
}
if(row==-1)
{
QQData data=new QQData(true,aType,aName,new GregorianCalendar(),aHide,aNumber,aCode);
EnterQQ.getQQData().add(data);
EnterQQ.getTableModel().fireTableDataChanged();
}
else
{
QQData data=EnterQQ.getQQData().get(row);
data.setType(type.getSelectedIndex());
data.setName(name.getText());
data.setNumber(number.getText());
if(codeChanged)
data.addCode(code.getText());
data.setHide(hide.isSelected());
EnterQQ.getTableModel().fireTableDataChanged();
}
EnterQQ.getOptions().setCodeSave(save.isSelected());
this.dispose();
}
else if(o==cancel)
{
dispose();
}
}
public void itemStateChanged(ItemEvent e)
{
name.setEnabled(self.isSelected());
if(!self.isSelected())
{
name.setText(number.getText());
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -