⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 managedialog.java

📁 一个使用Java编写的QQ批量登录器
💻 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 + -