Mian,程序入口类
import com.qsuron.action.PypController; import com.qsuron.business.Data; import com.qsuron.model.Conf; import com.qsuron.view.PypFrame; /** * Main类 * @author 280970160@qq.com */ public class Main { /** * 程序主入口 * @param args */ public static void main(String[] args) { PypFrame.InitLookAndFeel(); PypFrame view = new PypFrame(); Conf model = Data.recover(); @SuppressWarnings("unused") PypController control = new PypController(view, model); //control.getView().messageBox("hello"); //System.out.println(control.getView().showIpDial()); } }
控制类
package com.qsuron.action; import com.qsuron.util.Util; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; import java.util.Timer; import java.util.TimerTask; import javax.swing.JOptionPane; import com.qsuron.business.Data; import com.qsuron.model.Conf; import com.qsuron.view.PypFrame; /** * 控制类 * @author 280970160@qq.com */ public class PypController { private PypFrame view;//视图 private Conf model;//模型 private Timer timer=new Timer();//计时器 public PypController(PypFrame view,Conf model){ this.view = view; this.model = model; this.updateView(); this.setBtnListener(); this.setWindowsClose(); this.initLogin(); } /** * 检查是否自动拨号 */ private void initLogin() { Runnable runnable = new Runnable(){ @Override public void run() { if(model.isRemConn() && !model.getPassword().equals("")){ updateModel(); login(); } } }; new Thread(runnable).start(); } /** * 拨号 */ public void login(){ Runnable runnable = new Runnable(){ private int timedelay = 0; @Override public void run() { //System.out.println("Thread-login"); String flag = Util.launch(model); //System.out.println("+++"+flag); if(flag.equals("登录成功")){ if(model.isRemClose()){ view.getjProgressBar1().setText("登录成功!3秒后退出程序..."); Data.backup(model); try { Thread.sleep(3500); } catch (InterruptedException e) { e.printStackTrace(); } updateModel(); Data.backup(model); System.exit(0); }else{ view.getjProgressBar1().setText("登录成功!"); } }else if(flag.equals("密码错误")){ view.getjProgressBar1().setText("密码错误!请重新输入密码..."); view.getjTextField2().setText(""); view.getjTextField2().requestFocus(); }else if(flag.equals("帐号不存在")){ view.getjProgressBar1().setText("帐号不存在!请重新输入..."); view.getjTextField1().setText(""); view.getjTextField2().setText(""); view.getjTextField1().requestFocus(); }else if(flag.equals("网络异常")||flag.equals("IP异常")||flag.equals("登录频繁")){ timedelay=3000; if(flag.equals("IP异常")){ view.getjProgressBar1().setText("IP异常!请检查锐捷是否开启!重新拨号中..."); }else if(flag.equals("登录频繁")){ view.getjProgressBar1().setText("登录频繁,15秒后自动重试,请无视之,等待即可!"); timedelay=16000; }else{ view.getjProgressBar1().setText("未知返回值,请手动检查能否上网,或联系作者..."); } timer.schedule(new TimerTask(){ public void run(){ if((model.getCountAnd())>60){ view.messageBox("本地网络错误,请先检查锐捷是否开启。\n或者手动设置IP!"); model.setIp(""); Data.backup(model); System.exit(0); } login(); this.cancel(); } },timedelay);//五秒 } } }; new Thread(runnable).start(); } //关闭按钮响应 private void setWindowsClose() { view.addWindowListener(new WindowAdapter(){ @Override public void windowClosing(WindowEvent e) { int option = view.showCloseDial(); if (option == JOptionPane.YES_OPTION) { updateModel();//更新model Data.backup(model);//备份model System.exit(0);//退出程序 }else{ return; } } }); } /** * 设置按键监听 */ private void setBtnListener() { //拨号连接 view.getjButton1().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateModel();//更新model login(); } }); //拨号连接 view.getjTextField1().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { updateModel();//更新model login(); } }); //手动设置IP view.getjRadioButton1().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String ip = view.showIpDial(); if(ip != null){ model.setIp(ip); view.messageBox("设置IP[" + model.getIp() + "]成功! 请尝试拨号!"); view.getjTabbedPane1().setSelectedIndex(0); } } }); //访问小树技术博客(www.qiwanli.com) view.getjRadioButton2().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //判断当前系统是否支持Java AWT Desktop扩展 if(java.awt.Desktop.isDesktopSupported()){ try { //创建一个URI实例 java.net.URI uri = java.net.URI.create("https://www.qiwanli.com/"); //获取当前系统桌面扩展 java.awt.Desktop dp = java.awt.Desktop.getDesktop(); //判断系统桌面是否支持要执行的功能 if(dp.isSupported(java.awt.Desktop.Action.BROWSE)){ //获取系统默认浏览器打开链接 dp.browse(uri); } } catch(java.lang.NullPointerException ee){ } catch (java.io.IOException ee) { view.messageBox("无法打开默认浏览器,请手动访问:www.qiwanli.com !谢谢!"); } } } }); //自动关闭 view.getjCheckBox3().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(view.getjCheckBox3().isSelected()){ view.getjProgressBar1().setText("下次拨号成功后自动退出程序..."); }else{ view.getjProgressBar1().setText("取消拨号成功后自动退出程序..."); } } }); //自动拨号 view.getjCheckBox2().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(view.getjCheckBox2().isSelected()){ view.getjProgressBar1().setText("下次打开后自动开始拨号..."); }else{ view.getjProgressBar1().setText("取消打开后自动开始拨号..."); } } }); //开机启动 view.getjCheckBox4().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { view.messageBox("方法一:运行[设置为开机启动.bat](杀毒拦截的话要放行),方法二:把[快捷方式]拖动到[开始]-[程序]-[启动]中"); try { String[] cmd = new String[4]; String url = Data.LOCATION+"/设置为开机启动.bat"; url = url.replace("/", "\\"); //System.out.println(url); cmd[0] = "Explorer"; cmd[1] = "/select"; cmd[2] = ","; cmd[3] = url; //cmd[4] = url; Runtime.getRuntime().exec(cmd); } catch (IOException ee) { ee.printStackTrace(); } } }); //开机启动 view.getjRadioButton3().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { view.messageBox("方法一:运行[设置为开机启动.bat](杀毒拦截的话要放行),方法二:把[快捷方式]拖动到[开始]-[程序]-[启动]中"); try { String[] cmd = new String[4]; String url = Data.LOCATION+"/设置为开机启动.bat"; url = url.replace("/", "\\"); //System.out.println(url); cmd[0] = "Explorer"; cmd[1] = "/select"; cmd[2] = ","; cmd[3] = url; //cmd[4] = url; Runtime.getRuntime().exec(cmd); } catch (IOException ee) { ee.printStackTrace(); } } }); //软件漏洞 view.getjRadioButton4().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { view.messageBox("[QQ] 280970160 [邮箱] 280970160@qq.com [个人网站] www.qiwanli.com"); } }); } /** * 更新视图 */ private void updateView() { view.getjTextField1().setText(model.getAccount()); view.getjCheckBox1().setSelected(model.isRemPassword()); if(model.isRemPassword() && !model.getPassword().equals("")){ view.getjTextField2().setText(model.getPassword()); view.getjButton1().requestFocus(); }else{ view.getjTextField2().requestFocus(); } view.getjCheckBox2().setSelected(model.isRemConn()); view.getjCheckBox3().setSelected(model.isRemClose()); view.getjCheckBox4().setSelected(model.isRemStart()); } /** * 更新视图 * @param model * @param view */ public void updateModel(){ model.setAccount(view.getjTextField1().getText()); model.setPassword(new String(view.getjTextField2().getPassword())); model.setCount(model.getCount()+1); model.setRemClose(view.getjCheckBox3().isSelected()); model.setRemConn(view.getjCheckBox2().isSelected()); model.setRemPassword(view.getjCheckBox1().isSelected()); model.setRemStart(view.getjCheckBox4().isSelected()); } public PypFrame getView() { return view; } public Conf getModel() { return model; } }
缓存数据处理类
package com.qsuron.business; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import com.qsuron.model.Conf; /** * 缓存数据处理类(序列化Model类) * @author 280970160@qq.com */ public class Data { public static String LOCATION;//序列化文件所在位置 //静态代码段,获取主程序的路径 static { try { LOCATION = URLDecoder.decode(Data.class.getProtectionDomain().getCodeSource().getLocation().getFile(),"UTF-8"); LOCATION = LOCATION.substring(1,LOCATION.lastIndexOf('/')); } catch (UnsupportedEncodingException e) { LOCATION = ""; } } public static void main(String[] args) { /* Conf model = Data.recover(); System.out.println(model.getAccount()); */ /* Conf model = new Conf(); model.setAccount("qsuron"); model.setRemClose(true); backup(model); */ } /** * 配置文件序列化恢复 * @return Conf */ public static Conf recover() { File file = new File(LOCATION+"\\jre\\Conf"); Conf model = new Conf(); System.out.println(file.getAbsolutePath()+" exist:"+file.exists()); if(file.exists()){ ObjectInputStream ois = null; try{ ois = new ObjectInputStream(new FileInputStream(file)); model = (Conf)ois.readObject(); ois.close(); }catch(Exception e){ e.printStackTrace(); }finally{ try { ois.close(); } catch (IOException e) { e.printStackTrace(); } } } return model; } /** * 配置文件序列化备份 * @param model */ public static void backup(Conf model) { File file = new File(LOCATION+"\\jre\\Conf"); ObjectOutputStream oos = null; try{ oos = new ObjectOutputStream(new FileOutputStream(file)); oos.writeObject(model); oos.close(); }catch(Exception e){ e.printStackTrace(); }finally{ try { oos.close(); } catch (IOException e1) { e1.printStackTrace(); } } } }
Model类 存储各种配置信息
package com.qsuron.model; import java.io.Serializable; /** * Model 存储各种配置信息 * @author 280970160@qq.com */ public class Conf implements Serializable{ private static final long serialVersionUID = 8233781718173174500L; private String account,password; private String ip = ""; private boolean remPassword,remConn,remClose,remStart; private int count = 0; public String getIp() { if(this.ip == null) return ""; return ip; } public void setIp(String ip) { this.ip = ip; } public int getCount() { return count; } public int getCountAnd() { this.count++; return count; } public void setCount(int count) { this.count = count; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public boolean isRemPassword() { return remPassword; } public void setRemPassword(boolean remPassword) { this.remPassword = remPassword; } public boolean isRemConn() { return remConn; } public void setRemConn(boolean remConn) { this.remConn = remConn; } public boolean isRemClose() { return remClose; } public void setRemClose(boolean remClose) { this.remClose = remClose; } public boolean isRemStart() { return remStart; } public void setRemStart(boolean remStart) { this.remStart = remStart; } }
拨号工具类
package com.qsuron.util; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.util.Scanner; import com.qsuron.model.Conf; /** * 拨号工具类 * @author 280970160@qq.com */ public class Util { /** * @param account 帐号 * @param password 密码 * @return * IP异常 * 登录成功 * 登录频繁 * 密码错误 * 帐号不存在 * 网络异常 */ public static String launch(Conf model){ String flag="网络异常"; String ip = model.getIp(); String hostip=""; BufferedReader br = null; Process p = null; if(!ip.matches("192\\.168\\.\\d{1,3}\\.\\d{1,3}")) { try { hostip = java.net.InetAddress.getLocalHost().getHostAddress(); ip = hostip.substring(0,hostip.lastIndexOf('.'))+".1"; p = Runtime.getRuntime().exec("ping "+ip+" -n 1"); br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line = null; StringBuilder sb=new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line+"\n"); } if(sb.toString().contains("丢失 = 0")){ flag="网络异常"; }else{ flag="IP异常"; } } catch (Exception e) { } System.out.println("ip.1-"+ip); if(!ip.matches("192\\.168\\.\\d{1,3}\\.\\d{1,3}") || flag.equals("IP异常")) { flag = "IP异常"; return flag; } model.setIp(hostip); }else{ hostip = ip; } try { flag = "网络异常"; String command = "http://219.136.125.139/portalAuthAction.do?wlanacIp=121.33.224.66&auth_type=PAP&wlanacname=pyzyxy&wlanuserip=" + hostip + "&bank_acct=bank_acct&userid=" + model.getAccount() + "@PYZYXY.GZ&passwd=" + model.getPassword(); URL url=new URL(command); //System.out.println("new URL(address)"); Scanner s = new Scanner(url.openStream()); //System.out.println("url.openStream()"); String temp = new String();; while(s.hasNextLine()){ temp = new String(s.nextLine().getBytes("gb2312"),"GBK"); System.out.println(temp); if(temp.contains("我要下线")) { flag = "登录成功"; break; } else if(temp.contains("Please in 15 seconds after the restart!")) { flag="登录频繁"; break; } else if(temp.contains("Error 1002")) { flag = "密码错误"; break; } else if(temp.contains("Error 1001")) { flag = "帐号不存在"; break; } } s.close(); } catch (Exception ex) { ex.printStackTrace(); flag = "网络异常"; } return flag; } }
界面类
package com.qsuron.view; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTabbedPane; import javax.swing.JTextField; import javax.swing.LayoutStyle; import javax.swing.SwingConstants; import javax.swing.UIManager; /** * 界面类 * @author 280970160@qq.com */ public class PypFrame extends JFrame{ private static final long serialVersionUID = -1; private static final String TITLE = "电信拨号工具 - v3.2.2 Beta"; private JButton jButton1 = new JButton("拨号连接"); // 拨号连接 private JCheckBox jCheckBox1 = new JCheckBox("记住密码"); // 记住密码 private JCheckBox jCheckBox2 = new JCheckBox("自动拨号"); // 自动拨号 private JCheckBox jCheckBox3 = new JCheckBox("自动关闭"); // 自动关闭 private JCheckBox jCheckBox4 = new JCheckBox("开机自启"); // 开机自启 private JLabel jLabel1 = new JLabel();//帐号 private JLabel jLabel2 = new JLabel();//密码 private JLabel jLabel3 = new JLabel();//@PYZYXY.GZ private JPanel jPanel1 = new JPanel();// 面板 - 拨号工具 private JPanel jPanel2 = new JPanel();// 面板 - 设置帮助 private JLabel jProgressBar1 = new JLabel();// 提示信息 private JRadioButton jRadioButton1 = new JRadioButton(); private JRadioButton jRadioButton2 = new JRadioButton(); private JRadioButton jRadioButton3 = new JRadioButton(); private JRadioButton jRadioButton4 = new JRadioButton(); private JRadioButton jRadioButton5 = new JRadioButton(); private JTabbedPane jTabbedPane1 = new JTabbedPane(); private JTextField jTextField1 = new JTextField();// 账号框 private JPasswordField jTextField2 = new JPasswordField ();// 密码框 private int width,height; public PypFrame(){ initComponents(); } /** * 界面初始化 */ private void initComponents() { this.InitText(); this.InitToolTipText(); jPanel1.setPreferredSize(new Dimension(260, 180)); jTextField1.setColumns(10); jTextField2.setColumns(10); jTextField2.setEchoChar('*'); //this.InitMenu(jMenuBar1); this.InitLayout(jPanel1, jPanel2, getContentPane()); this.InitTab(jTabbedPane1, jPanel1, jPanel2); this.pack(); // 定义工具包,获取屏幕的尺寸,使窗口位于正中央 Toolkit kit = Toolkit.getDefaultToolkit(); width = kit.getScreenSize().width/2-this.getWidth()/2; height = kit.getScreenSize().height/2-this.getHeight()/2; this.setLocation(width,height); this.setResizable(false); this.setTitle(TITLE); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); jProgressBar1.setBackground(Color.GRAY); jProgressBar1.setForeground(Color.RED); // 使得帐号框取得焦点 jTextField1.requestFocus(); this.setVisible(true); } /* Set the Tab Panel */ private void InitTab(JTabbedPane jTabbedPane1,JPanel jPanel1,JPanel jPanel2) { jTabbedPane1.addTab("拨号工具", jPanel1); jTabbedPane1.addTab("设置帮助", jPanel2); jTabbedPane1.setSelectedIndex(0); jTabbedPane1.setSelectedComponent(jPanel1); } /* Set all the Text */ private void InitText() { jLabel1.setText("帐号"); jLabel2.setText("密码"); jLabel3.setText(" @PYZYXY.GZ"); jProgressBar1.setText("已就绪!"); jRadioButton1.setText("手动设置IP地址 [解决多网卡的IP异常]"); jRadioButton2.setText("访问 小树技术博客 [www.qiwanli.com]"); jRadioButton3.setText("设置开机自启方法"); jRadioButton4.setText("软件漏洞:请联系作者,不甚感激!"); jRadioButton5.setText("作者:番职院 信工 12软测 小树 2013 09 01"); } /* Set All ToolTip Text */ private void InitToolTipText() { jTextField1.setToolTipText("请输入宽带帐号:学号/手机号(需开通)"); jTextField2.setToolTipText("请输入宽带密码(8位以上)"); jCheckBox3.setToolTipText("拨号成功后自动退出程序释放内存"); jCheckBox4.setToolTipText("配合‘锐捷开机自启’可以在开机后完全自动拨号上网"); jCheckBox2.setToolTipText("下次启动程序后自动开始拨号连接"); jCheckBox1.setToolTipText("记住密码,下次启动程序无需输入密码"); jProgressBar1.setToolTipText("提示栏"); } /* Set the JPanel's Layout */ private void InitLayout(JPanel jPanel1, JPanel jPanel2, Container contentPanel) { GroupLayout jPanel1Layout = new GroupLayout(jPanel1); GroupLayout jPanel2Layout = new GroupLayout(jPanel2); GroupLayout layout = new GroupLayout(contentPanel); jPanel1.setLayout(jPanel1Layout); jPanel2.setLayout(jPanel2Layout); contentPanel.setLayout(layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jCheckBox2) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBox3) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBox4) .addGap(8, 8, 8)) .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) .addComponent(jButton1, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.TRAILING) .addComponent(jLabel1) .addComponent(jLabel2)) .addGap(18, 18, 18) .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jTextField1) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE))) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jLabel3) .addComponent(jCheckBox1))))) .addGap(72, 72, 72)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1) .addComponent(jLabel3)) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jCheckBox1) .addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addComponent(jButton1) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(jCheckBox3) .addComponent(jCheckBox2) .addComponent(jCheckBox4)) .addContainerGap(13, Short.MAX_VALUE)) ); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(jRadioButton3) .addComponent(jRadioButton1) .addComponent(jRadioButton2) .addComponent(jRadioButton4) .addComponent(jRadioButton5)) .addContainerGap(20, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(jRadioButton3) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jRadioButton1) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jRadioButton2) .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jRadioButton4) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jRadioButton5)) ); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false) .addComponent(jTabbedPane1, GroupLayout.PREFERRED_SIZE, 263, GroupLayout.PREFERRED_SIZE) .addComponent(jProgressBar1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jTabbedPane1, GroupLayout.PREFERRED_SIZE, 170, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jProgressBar1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); } /* Set the Nimbus look and feel */ public static void InitLookAndFeel(){ try { for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (Exception e) { e.printStackTrace(); } } /* Main */ public static void main(String[] args) { } public JButton getjButton1() { return jButton1; } public JCheckBox getjCheckBox1() { return jCheckBox1; } public JCheckBox getjCheckBox2() { return jCheckBox2; } public JCheckBox getjCheckBox3() { return jCheckBox3; } public JCheckBox getjCheckBox4() { return jCheckBox4; } public JTextField getjTextField1() { return jTextField1; } public JPasswordField getjTextField2() { return jTextField2; } public JLabel getjProgressBar1() { return jProgressBar1; } public JRadioButton getjRadioButton1() { return jRadioButton1; } public JRadioButton getjRadioButton2() { return jRadioButton2; } public JRadioButton getjRadioButton3() { return jRadioButton3; } public JRadioButton getjRadioButton4() { return jRadioButton4; } public JRadioButton getjRadioButton5() { return jRadioButton5; } public JTabbedPane getjTabbedPane1() { return jTabbedPane1; } /** * 关闭程序提示框 * @return */ public int showCloseDial() { return JOptionPane.showConfirmDialog(this, "是否完全退出软件?", "系统提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); } /** * IP设置输入框 * @return */ public String showIpDial() { return JOptionPane.showInputDialog("输入您的IP地址: 192.168.???.??? ."); } // Build MsgBox public void messageBox(String s){ JDialog dialog = new JDialog(this,true); dialog.setTitle("提示信息"); dialog.add(new JLabel(" "),BorderLayout.NORTH); dialog.add(new JLabel(" "+s+" ",SwingConstants.CENTER),BorderLayout.CENTER); dialog.add(new JLabel(" "),BorderLayout.SOUTH); dialog.setLocation(width+10,height+50); dialog.setResizable(false); dialog.pack(); dialog.setVisible(true); } }
源码下载地址在上一页中已经给出。
Pages: 1 2
Comments 4 条评论
有神马用?
@张新鹏 只是在我的学校(广州番禺职业技术学院)有作用,实现替换每次开机网页电信拨号的功能。
你们学校是用的锐捷拨号吗?湖北这边用的是类似闪讯的拨号软件,拨号密码是加密处理过的,学习了。
@嘿 嗯,是锐捷。我写的不是替代锐捷的功能,没什么技术含量的,一个post提交完成后面的电信拨号而已。我们学校要2层拨号。