请教Swing的一个调试技术.

不会Java不牛逼 2014-03-21 01:07:02
高手,您好:
我写的一个Swing程序,登录窗口,在进行了“提交按钮”的点击后,得到了:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException
的报错,为了解决这个报错.
我把我的“登录窗口”Login类的代码,进行了如下的改造:
public Login() throws ClassCastException{
让我的“本类型的构造方法在面对本类型所有引用分支的时候”“抛出ClassCastException”.
并且,我将调用本类型的顶层类型的代码现场,进行了如下的代码书写:
try{
new Login();
}catch(ClassCastException e){
new NoteJFrameUserDportInfo02();
}
弹出一个JFrame窗口,让我的用户得到系统提示:
“尊敬的用户!!对不起!!本次连接由于网络异常,连接未果,请您重新登录,尝试连接我们的系统!!谢谢!!”.
但是,在今天小弟我运行程序的时候,仍然报错.
我的Login类的代码如下:
package c_port_packageBJTeacher;

import java.awt.Rectangle;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;


public class Login extends JFrame implements WindowListener{

/**
*
*/
public static String S_PORT_SERVER = "127.0.0.1";
private static final long serialVersionUID = 1L;
/**
* @param args
*/
static JTextField jtf0 = new JTextField();
static JTextField jtf1 = new JTextField();
JLabel jl0 = new JLabel();
JLabel jl1 = new JLabel();
MyJButton jb2 = null;
MyJButtonPayForSysProduct jb3 = null;
static JPasswordField jpwf = new JPasswordField();
JPanel jp1 = new JPanel();
public static String UID = null;
static String PWD = null;

public static void main(String[] args) {
// TODO Auto-generated method stub
new Login();
}

public Login() throws ClassCastException{
this.setTitle("千里马网络教育平台,让您用每月一包烟钱,获得孩子的茁壮成长!!");
jb2 = new MyJButton("注册","127.0.0.1");
jb3 = new MyJButtonPayForSysProduct("验证产品授权");
String MyUID0 = Login.jtf0.getText();
String MyPWD0 = String.valueOf(Login.jpwf.getPassword());
MyJButtonLogin jb1 = new MyJButtonLogin("登陆","",MyPWD0,this);
this.setVisible(true);
this.setDefaultCloseOperation(Login.EXIT_ON_CLOSE);
jb1.setBounds(new Rectangle(10,220,80,30));
jb2.setBounds(new Rectangle(250,220,80,30));
jb3.setBounds(new Rectangle(110,220,120,30));
jp1.setLayout(null);
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
jtf0.setBounds(new Rectangle(73,115,220,25));
jp1.add(jtf0);
jpwf.setBounds(new Rectangle(73,150,220,25));
jp1.add(jpwf) ;
jl0 = new JLabel("用户名");
jl1 = new JLabel("密码");
jl0.setBounds(new Rectangle(30,115,40,25));
jl1.setBounds(new Rectangle(30,150,40,25));
jp1.add(jl0);
jp1.add(jl1);
jp1.add(jb3);
this.add(jp1);
this.setBounds(500,218,370,330);
this.setContentPane(jp1);
}

@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowClosing(WindowEvent e) {
//TODO Auto-generated method stub
Complete_C_port_registerfuct.so2.getMyResourceBack();
PayforTheSoftWareOfDevelopmenter.so2.getMyResourceBack();
MyJButtonLogin.so3.getMyResourceBack();
SocketClient so3 = new SocketClient(Recv.S_PORT_SERVER,8811);
so3.writeStr("7丗IHaveToExitMySys丗C丗Teacher丗"+NoteUserLoginFrame.MyworkNum,"Login");
so3.getMyResourceBack();
System.exit(0);
}

@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub

}

@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub

}
}

希望得到达人的相助:
我的修改方案,错在哪里?
...全文
189 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) at java.net.AbstractPlainSocketImpl.connect(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at c_port_packageBJTeacher.SocketClient.<init>(SocketClient.java:38) at c_port_packageBJTeacher.MyJButtonLogin$1.actionPerformed(MyJButtonLogin.java:62) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at c_port_packageBJTeacher.SocketClient.writeStr(SocketClient.java:60) at c_port_packageBJTeacher.MyJButtonLogin$1.actionPerformed(MyJButtonLogin.java:64) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 我再一次遇到了这个报错. 上面是错误的完整版. 希望得到大家的相助: 怎么写这段程序,能够用“捕获抛出异常”的手段,快速将错误,“cut了”.
  • 打赏
  • 举报
回复
引用
你这样是捕获不到异常的:
try{
new Login();
}catch(ClassCastException e){
new NoteJFrameUserDportInfo02();
}

很明显你地方都搞错了,而异常是 事件调度线程 抛出的,不是main线程抛出的;

既然你是点击button后出现异常,你应该检查下你那个“提交按钮”的事件监听器,然后捕获它就可以了;

你查看下你的button上的监听器,

这是我的项目上述场景下 报出的错误.


求lxbccsu大神,CSDN中路过的高手们的“路见不平拔刀相助”!!
谢谢!!
  • 打赏
  • 举报
回复
谢谢lxbccsu高手高手高高手的点拨!! 小弟,100分,全数奉上!!
lxbccsu 2014-03-21
  • 打赏
  • 举报
回复
你这样是捕获不到异常的: try{ new Login(); }catch(ClassCastException e){ new NoteJFrameUserDportInfo02(); } 很明显你地方都搞错了,而异常是 事件调度线程 抛出的,不是main线程抛出的; 既然你是点击button后出现异常,你应该检查下你那个“提交按钮”的事件监听器,然后捕获它就可以了; 你查看下你的button上的监听器,

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧