📄 optiondialog.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
class OptionDialog extends JDialog implements ActionListener,ChangeListener
{
private JTabbedPane tab;
private JTable table;
private OptionTableModel model;
private JButton clear,open,code,ok,cancel;
private JCheckBox close,check,start;
private JLabel detail,timeL;
private JSpinner time;
private ImageIcon icon;
public OptionDialog(JFrame qq)
{
super(qq,"设定",true);
tab=new JTabbedPane();
model=new OptionTableModel(EnterQQ.getOptions());
table=new JTable(model);
table.setRowHeight(20);
table.setShowGrid(false);
table.addMouseListener
(
new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
boolean selected=table.getSelectedRow()>-1;
clear.setEnabled(selected);
open.setEnabled(selected);
}
}
);
TableColumn column=table.getColumnModel().getColumn(0);
column.setMaxWidth(60);
JScrollPane pane=new JScrollPane(table);
clear=new JButton("清除");
open=new JButton("浏览");
detail=new JLabel("说明:如果...");
clear.addActionListener(this);
clear.setEnabled(false);
open.setEnabled(false);
open.addActionListener(this);
JPanel panel1=new JPanel();
panel1.setLayout(null);
pane.setBounds(10,10,300,100);
clear.setBounds(120,120,80,20);
open.setBounds(210,120,80,20);
detail.setBounds(20,150,290,20);
panel1.add(pane);
panel1.add(clear);
panel1.add(open);
panel1.add(detail);
tab.add("设定地址",panel1);
close=new JCheckBox("启动账号后关闭",EnterQQ.getOptions().isClose());
check=new JCheckBox("允许自动检查更新",EnterQQ.getOptions().isCheck());
start=new JCheckBox("需要密码启动",EnterQQ.getOptions().isCodeNeeded());
code=new JButton("设置密码");
code.addActionListener(this);
timeL=new JLabel("使用账号登录延迟/秒");
time=new JSpinner();
time.addChangeListener(this);
time.setValue(EnterQQ.getOptions().getDelay());
JPanel panel2=new JPanel();
panel2.setLayout(null);
close.setBounds(10,10,150,20);
check.setBounds(10,40,150,20);
start.setBounds(10,70,150,20);
code.setBounds(15,100,90,20);
timeL.setBounds(15,130,120,20);
time.setBounds(135,130,40,20);
panel2.add(close);
panel2.add(check);
panel2.add(start);
panel2.add(code);
panel2.add(timeL);
panel2.add(time);
tab.add("程序参数",panel2);
ok=new JButton("确定");
cancel=new JButton("取消");
ok.addActionListener(this);
cancel.addActionListener(this);
setLayout(null);
tab.setBounds(10,10,300,200);
ok.setBounds(70,220,80,25);
cancel.setBounds(170,220,80,25);
add(tab);
add(ok);
add(cancel);
Point loc=qq.getLocation();
setBounds((int)loc.getX()+20,(int)loc.getY()+40,325,300);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
Object o=e.getSource();
if(o==clear)
{
int[] rows=table.getSelectedRows();
for(int r:rows)
{
model.setValueAt("",r,1);
}
model.fireTableDataChanged();
clear.setEnabled(false);
open.setEnabled(false);
}
if(o==open)
{
FileDialog dialog=new FileDialog(this,"打开程序地址",FileDialog.LOAD);
dialog.setVisible(true);
if(dialog.getFile()==null)
return;
String path=dialog.getDirectory()+dialog.getFile();
int r=table.getSelectedRow();
model.setValueAt(path,r,1);
model.fireTableDataChanged();
clear.setEnabled(false);
open.setEnabled(false);
}
else if(o==code)
{
new CodeDialog(this,false);
}
else if(o==ok)
{
Options options=EnterQQ.getOptions();
options.setQQPath((String)table.getValueAt(0,1));
options.setTMPath((String)table.getValueAt(1,1));
options.setGamePath((String)table.getValueAt(2,1));
options.setClose(close.isSelected());
options.setCheck(check.isSelected());
options.setCodeNeeded(start.isSelected());
options.setDelay(Integer.parseInt(time.getValue().toString()));
dispose();
}
else if(o==cancel)
{
dispose();
}
}
public void stateChanged(ChangeEvent e)
{
if(Integer.parseInt(time.getValue().toString())<0)
time.setValue(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -