怎么利用按钮关闭JDialog???

小兵比克 2011-09-10 05:24:00
不知道是不是我写的不对,点击按钮后没有反应,我设置监听器了,相关代码如下:
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingConstants;


public class saveListener implements ActionListener {

JDialog saveDialog = new JDialog (Diary.diary, "提示", true);
JLabel saveLabel = new JLabel ("保存成功");
JButton knownButton = new JButton ("我知道了");

public void actionPerformed(ActionEvent e) {
String contents = Diary.diary.WriteArea.getText(); /*必须放在要执行的方法体里边*/
saveDialog.setBounds(100, 100, 250, 80);
saveDialog.setLayout(new GridLayout(2, 1));
saveLabel.setHorizontalAlignment(SwingConstants.CENTER);
saveDialog.add(saveLabel);
saveDialog.add(knownButton);
saveDialog.setVisible(true);

WriteOut(contents);

knownButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {

saveDialog.dispose();
}

});
}
主要问题是:写着“我知道了”的按钮knownButton点击后,没有反应,我用的是.dispose()这个函数。
...全文
706 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小兵比克 2011-09-10
  • 打赏
  • 举报
回复
谢谢,谢谢,学习了,我新手,请问命名规范是……课上讲过,我没有太记
风尘中国 2011-09-10
  • 打赏
  • 举报
回复
不好意思上个帖子的SaveListener贴错了,重新贴一下

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingConstants;


public class SaveListener implements ActionListener {

JDialog saveDialog = new JDialog (Diary.diary, "提示", true);
JLabel saveLabel = new JLabel ("保存成功");
JButton knownButton = new JButton ("我知道了");

public void actionPerformed(ActionEvent e) {
String contents = Diary.diary.WriteArea.getText(); /*必须放在要执行的方法体里边*/
saveDialog.setBounds(100, 100, 250, 80);
saveDialog.setLayout(new GridLayout(2, 1));
saveLabel.setHorizontalAlignment(SwingConstants.CENTER);
saveDialog.add(saveLabel);
saveDialog.add(knownButton);
knownButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {
System.out.println("看看执行没有");
saveDialog.dispose();
}

});

saveDialog.setVisible(true);

WriteOut(contents);


}

public void WriteOut (String s) {
File f = new File ("f:\\diaries");
f.mkdirs();
try {
FileOutputStream savingContent = new FileOutputStream ("f:\\diaries\\" + Diary.diary.TitleField.getText() + ".txt", true);
OutputStreamWriter osw = new OutputStreamWriter (savingContent);
osw.write(s);
osw.flush();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}



--------------------------------------

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Diary extends JFrame {

static Diary diary = new Diary();
static JTextField TitleField = new JTextField(30);
static JTextArea WriteArea = new JTextArea(30, 50);
JPanel jp = new JPanel();

public static void main(String[] args) {
diary.launchFrame();

}

public void launchFrame () {
this.setLocation(400, 100);
this.setSize(700, 630);
this.setBackground(new Color(100, 100, 100));
this.setTitle("日记薄");
this.setVisible(true);
this.setResizable(false);
this.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) {
dispose();
System.exit(0);
}
});
this.assignFrame();

}
public void assignFrame() {
JButton saveButton = new JButton("保存");
JButton openButton = new JButton("打开");
JButton closeButton = new JButton("关闭");
JPanel titleFieldPanel = new JPanel();
JPanel writeAreaPanel = new JPanel();
JPanel buttonPanel = new JPanel();
Container pane = this.getContentPane();
SimpleDateFormat YMD = new SimpleDateFormat ("yyyy年MM月dd日----EEE");
String title = YMD.format(new Date());
JScrollPane js = new JScrollPane(WriteArea); /*必须把进度条new在方法体里边*/

WriteArea.setLineWrap(true);
pane.setLayout(new BorderLayout()); /*增加进度条*/
titleFieldPanel.add(TitleField);
TitleField.setText(title);
writeAreaPanel.add(js);
pane.add(writeAreaPanel);
pane.add("North", titleFieldPanel);/* pane.add("Center", WriteAreaPanel)*/;
pane.add("East", buttonPanel);

buttonPanel.setLayout(new GridLayout (3, 1));

buttonPanel.add(saveButton);
buttonPanel.add(openButton);
buttonPanel.add(closeButton);
saveButton.addActionListener(new SaveListener());
//openButton.addActionListener(new openListener());
closeButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {
dispose();
System.exit(0);
}

});

pane.validate();
System.out.println("----------");


}

}
打油的程序员 2011-09-10
  • 打赏
  • 举报
回复
openListener这个类 还没贴上来
风尘中国 2011-09-10
  • 打赏
  • 举报
回复
你的代码很有问题,简要说
1.对话框不关闭的问题。之所以dispose方法没有执行,是因为你对 “我知道了”那个按钮的添加侦听在setVisible()方法之后,实际上必须要在setVisible之前添加才有效
2.添加各个面板之前就setVisible,导致无法看到界面,如果那样做必须valiate()一下
3.代码很多地方不符合Java命名规范
给你直接贴出来可以跑的代码了,open的侦听你没贴出来代码,我注解掉了


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Diary extends JFrame {

static Diary diary = new Diary();
static JTextField TitleField = new JTextField(30);
static JTextArea WriteArea = new JTextArea(30, 50);
JPanel jp = new JPanel();

public static void main(String[] args) {
diary.launchFrame();

}

public void launchFrame () {
this.setLocation(400, 100);
this.setSize(700, 630);
this.setBackground(new Color(100, 100, 100));
this.setTitle("日记薄");
this.setVisible(true);
this.setResizable(false);
this.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) {
dispose();
System.exit(0);
}
});
this.assignFrame();

}
public void assignFrame() {
JButton saveButton = new JButton("保存");
JButton openButton = new JButton("打开");
JButton closeButton = new JButton("关闭");
JPanel titleFieldPanel = new JPanel();
JPanel writeAreaPanel = new JPanel();
JPanel buttonPanel = new JPanel();
Container pane = this.getContentPane();
SimpleDateFormat YMD = new SimpleDateFormat ("yyyy年MM月dd日----EEE");
String title = YMD.format(new Date());
JScrollPane js = new JScrollPane(WriteArea); /*必须把进度条new在方法体里边*/

WriteArea.setLineWrap(true);
pane.setLayout(new BorderLayout()); /*增加进度条*/
titleFieldPanel.add(TitleField);
TitleField.setText(title);
writeAreaPanel.add(js);
pane.add(writeAreaPanel);
pane.add("North", titleFieldPanel);/* pane.add("Center", WriteAreaPanel)*/;
pane.add("East", buttonPanel);

buttonPanel.setLayout(new GridLayout (3, 1));

buttonPanel.add(saveButton);
buttonPanel.add(openButton);
buttonPanel.add(closeButton);
saveButton.addActionListener(new SaveListener());
//openButton.addActionListener(new openListener());
closeButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {
dispose();
System.exit(0);
}

});

pane.validate();
System.out.println("----------");


}

}


import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingConstants;


public class SaveListener implements ActionListener {

JDialog saveDialog = new JDialog ();
JLabel saveLabel = new JLabel ("保存成功");
JButton knownButton = new JButton ("我知道了");

//actionPerformed
public void actionPerformed(ActionEvent e) {
// String contents = Diary.diary.WriteArea.getText(); /*必须放在要执行的方法体里边*/
saveDialog.setBounds(100, 100, 250, 80);
saveDialog.setLayout(new GridLayout(2, 1));
saveLabel.setHorizontalAlignment(SwingConstants.CENTER);
saveDialog.add(saveLabel);
saveDialog.add(knownButton);
saveDialog.setVisible(true);

//WriteOut(contents);

knownButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

saveDialog.dispose();
// saveDialog.dispose();
}

});
}
}


小兵比克 2011-09-10
  • 打赏
  • 举报
回复
全部如下:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Diary extends JFrame {

static Diary diary = new Diary();
static JTextField TitleField = new JTextField(30);
static JTextArea WriteArea = new JTextArea(30, 50);
JPanel jp = new JPanel();

public static void main(String[] args) {
diary.launchFrame();

}

public void launchFrame () {
this.setLocation(400, 100);
this.setSize(700, 630);
this.setBackground(new Color(100, 100, 100));
this.setTitle("日记薄");
this.setVisible(true);
this.setResizable(false);
this.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) {
dispose();
System.exit(0);
}
});
this.assignFrame();

}
public void assignFrame() {
JButton saveButton = new JButton("保存"); JButton openButton = new JButton("打开"); JButton closeButton = new JButton("关闭");
JPanel TitleFieldPanel = new JPanel(); JPanel WriteAreaPanel = new JPanel(); JPanel ButtonPanel = new JPanel();
Container pane = this.getContentPane();
SimpleDateFormat YMD = new SimpleDateFormat ("yyyy年MM月dd日----EEE");
String title = YMD.format(new Date());
JScrollPane js = new JScrollPane(WriteArea); /*必须把进度条new在方法体里边*/

WriteArea.setLineWrap(true);
pane.setLayout(new BorderLayout()); /*增加进度条*/
TitleFieldPanel.add(TitleField);
TitleField.setText(title);
WriteAreaPanel.add(js);
pane.add(WriteAreaPanel);
pane.add("North", TitleFieldPanel);/* pane.add("Center", WriteAreaPanel)*/; pane.add("East", ButtonPanel);

ButtonPanel.setLayout(new GridLayout (3, 1));

ButtonPanel.add(saveButton); ButtonPanel.add(openButton); ButtonPanel.add(closeButton);
saveButton.addActionListener(new saveListener());
openButton.addActionListener(new openListener());
closeButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {
dispose();
System.exit(0);
}

});





}

}

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.SwingConstants;


public class saveListener implements ActionListener {

JDialog saveDialog = new JDialog (Diary.diary, "提示", true);
JLabel saveLabel = new JLabel ("保存成功");
JButton knownButton = new JButton ("我知道了");

public void actionPerformed(ActionEvent e) {
String contents = Diary.diary.WriteArea.getText(); /*必须放在要执行的方法体里边*/
saveDialog.setBounds(100, 100, 250, 80);
saveDialog.setLayout(new GridLayout(2, 1));
saveLabel.setHorizontalAlignment(SwingConstants.CENTER);
saveDialog.add(saveLabel);
saveDialog.add(knownButton);
saveDialog.setVisible(true);

WriteOut(contents);

knownButton.addActionListener(new ActionListener () {

public void actionPerformed(ActionEvent e) {
System.out.println("看看执行没有");
saveDialog.dispose();
}

});
}

public void WriteOut (String s) {
File f = new File ("f:\\diaries");
f.mkdirs();
try {
FileOutputStream savingContent = new FileOutputStream ("f:\\diaries\\" + Diary.diary.TitleField.getText() + ".txt", true);
OutputStreamWriter osw = new OutputStreamWriter (savingContent);
osw.write(s);
osw.flush();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
gentleboy2009 2011-09-10
  • 打赏
  • 举报
回复
从你发的这一段代码就可以看出你的程序组织的是比较乱的!~~这样逻辑上出问题是很正常的……重构一下,要不然就把代码发全了看看
小兵比克 2011-09-10
  • 打赏
  • 举报
回复
不执行,可是为什么不执行呢
打油的程序员 2011-09-10
  • 打赏
  • 举报
回复
试试:this.dispose();
gentleboy2009 2011-09-10
  • 打赏
  • 举报
回复
你先在你的saveDialog.dispose();前面加一句输出语句,或者debug一下 确定一下 这里的代码是不是执行了。
小兵比克 2011-09-10
  • 打赏
  • 举报
回复
我只想关闭对话框,不想整个程序都退出啊
打油的程序员 2011-09-10
  • 打赏
  • 举报
回复
你把那句话改为System.exit(0);
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时
package com.shou.loginfjame; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Cursor; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.SQLException; import java.util.List; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.ImageIcon; import javax.swing.JButton; 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.JTextArea; import javax.swing.JTextField; import javax.xml.bind.util.ValidationEventCollector; import com.shou.LoginUtil.LoginUser; import com.shou.dao.LoginDao; import com.shuo.util.ValidCode; public class LoginFjame extends JFrame implements ActionListener { private JFrame frame = new JFrame("登录"); private JPanel panel = new JPanel(); private JLabel tiel = new JLabel("龍丶逸小说登录系统"); // 创建标题 private JLabel userLabel = new JLabel("用户名:"); // 创建UserJLabel private JTextArea userText=new JTextArea("请输入内容",7, 30); // 获取登录名 private JLabel passLabel = new JLabel("密 码:"); // 创建PassJLabel private JPasswordField passText = new JPasswordField(20); // 密码框隐藏 private JLabel verCodeLa = new JLabel("验证码:"); // 验证码 private JTextField inputCode = new JTextField(); // 验证码框 private ValidCode vcode = new ValidCode(); // 验证码内容 JTextField jt_code; private JButton loginButton = new JButton("登录"); // 创建登录按钮 private JButton registerButton = new JButton("注 册"); // 创建注册按钮 private JButton newPasswordButton = new JButton("忘记密码"); // 创建注册按钮 private JButton exitButton = new JButton("退出"); JTextField field = null; public LoginFjame() { System.out.println("====================================="); System.out.println("== 龍丶逸小说系统 =="); System.out.println("== V1.1.1.0 =="); System.out.println("====================================="); WinLogin(); } public void WinLogin() { panel.setLayout(null); // 设置布局为 null // 创建标题名称 this.tiel.setFont(new Font("宋体", 1, 20)); this.tiel.setBounds(150, 30, 300, 25); this.panel.add(this.tiel); // 创建 UserJLabel this.userLabel.setFont(new Font("宋体", 1, 13)); this.userLabel.setBounds(70, 80, 80, 25); this.panel.add(userLabel); // 创建文本域用于用户输入 this.userText.setBounds(145, 80, 165, 25); this.panel.add(this.userText); // 注册 this.registerButton.setFont(new Font("宋体", 1, 15)); this.registerButton.setContentAreaFilled(false); this.registerButton.setBorderPainted(false); /* registerButton.setBackground(Color.red); */ this.registerButton.setBounds(320, 80, 100, 25); this.panel.add(this.registerButton); // 变成小手 this.registerButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // 创建PassJLabel this.passLabel.setFont(new Font("宋体", 1, 13)); this.passLabel.setBounds(70, 110, 80, 25); this.panel.add(this.passLabel); // 密码输入框 隐藏 this.passText.setBounds(145, 110, 165, 25); this.panel.add(this.passText); // 忘记密码 this.newPasswordButton.setFont(new Font("宋体", 1, 15)); this.newPasswordButton.setContentAreaFilled(false); this.newPasswordButton.setBorderPainted(false); /* registerButton.setBackground(Color.red); */ this.newPasswordButton.setBounds(320, 110, 100, 25); this.panel.add(this.newPasswordButton); // 变成小手 this.newPasswordButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // 验证码code this.verCodeLa.setFont(new Font("宋体", 1, 13)); this.verCodeLa.setBounds(70, 140, 80, 25); this.panel.add(this.verCodeLa); // 验证码框 this.inputCode.setBounds(145, 140, 165, 25); this.panel.add(this.inputCode); // 验证码图片 this.vcode.setBounds(320, 140, 165, 25); this.panel.add(this.vcode); System.out.println(this.vcode); // 创建登录按钮 this.loginButton.setFont(new Font("宋体", 1, 15)); this.loginButton.setBounds(95, 190, 80, 25); this.panel.add(this.loginButton); // 变成小手 this.loginButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // 退出按钮 this.exitButton.setFont(new Font("宋体", 1, 15)); this.exitButton.setBounds(230, 190, 80, 25); this.panel.add(this.exitButton); // 变成小手 this.exitButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); // 设置窗体的位置及大小 this.frame.setSize(460, 355); frame.setLocationRelativeTo(null); // 在屏幕中居中显示 frame.add(this.panel); // 添加面板 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置X号后关闭 //设置按钮 this.registerButton.addActionListener(this); //注册按钮 this.newPasswordButton.addActionListener(this); //忘记密码 this.loginButton.addActionListener(this); //登录 this.exitButton.addActionListener(this); //退出 // 往窗体里放其他控件 frame.setVisible(true); // 设置窗体可见 } @Override public void actionPerformed(ActionEvent e) { JButton bt = (JButton) e.getSource(); // 获取按钮信息 String str = bt.getText(); // 获取用户名 String name = this.userText.getText().trim(); // 获取密码 String password = this.passText.getText().trim(); // 获取验证码 String code = this.inputCode.getText().trim(); // 获取jsp验证码 String vcode = this.vcode.getCode(); // 登录 if (str.equals("登录")) { System.out.println("登录"); // 验证码转为大写 String Dcode = code.toUpperCase(); String Dvcode = vcode.toUpperCase(); // 验证码判断 if (Dcode.equals(Dvcode)) { //获取页面的用户名 String username=this.userText.getText().trim(); // 根据用户名查看是否有该用户 try { List loginUser=new LoginDao().queryAll(username); String a=loginUser.toString(); System.out.println(a.toString()); if(!a.toString().equals("[]")){ //密码判断 String mysqlPasword=loginUser.get(0).l_password(); if(mysqlPasword.equals(password)){ //登录成功 JOptionPane pane = new JOptionPane("登录成功"); JDialog dialog = pane.createDialog(this, "警告"); dialog.show(); }else{ JOptionPane pane = new JOptionPane("密码错误错误,请重新输入"); JDialog dialog = pane.createDialog(this, "警告"); dialog.show(); } }else{ JOptionPane pane = new JOptionPane("用户名错误,请重新输入"); JDialog dialog = pane.createDialog(this, "警告"); dialog.show(); } /*System.out.println(loginUser.toString()); String sqlUername=loginUser.get(0).getL_username();*/ /*int sqlpassword=loginUser.get(0).getL_power();*/ /*System.out.println("loginF:"+sqlUername);*/ } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } else { JOptionPane pane = new JOptionPane("验证码错误,请重新输入"); JDialog dialog = pane.createDialog(this, "警告"); System.out.println(dialog.getFont()); dialog.show(); } } else // 退出 if (str.equals("退出")) { System.out.println("退出"); System.exit(0); } else // 注册 if (str.equals("注 册")) { System.out.println("注 册"); } // 注册 else if (str.equals("忘记密码")) { System.out.println("忘记密码"); } else { System.out.println("异常错误"); } } public boolean isValidCodeRight() { System.out.println(this.jt_code.getText()); if (this.jt_code == null) { return false; } if (this.vcode == null) { return true; } if (this.vcode.getCode().equals(this.jt_code.getText())) { return true; } return false; } public static void main(String[] args) { new LoginFjame(); } }
第一篇 基础篇 第0章 JDK安装和最简单的环境变量配置方法 第1章 Java基础概念 一、 Java基础语法 1、Helloworld.java 2、标识符 3、关键字 4、常量 5、变量 6、语句 6.1 if语句和switch语句 6.1.2 if语句举例 6.1.3 switch语句 6.2 for循环语句 6.3 while语句和do-while语句 6.3.1 while语句形式 6.3.2 do-while语句 6.3.3 while语句和do-while语句举例 6.4 break语句和continue语句 6.4.1 break语句 6.4.2 continue语句 二、类和对象 1、面向对象基础 1.1 面向对象程序设计入门分析 1.2 抽象 1.3 封装 2、类 2.1 类头 2.2类体 2.3 创建对象 2.4 面向对象举例 2.5 构造函数 2.5.1 构造函数的一般概念 2.5.2 创建自己的构造函数 2.5.3 构造方法注意事项 2.5.4构造函数的作用 3、方法 3.1 方法介绍 3.2方法定义 3.3调用方法 3.4 方法举例 4、访问控制符 5、this关键字 5.1 this方法应用举例 6. Static关键字 6.1 static应用举例 7. super关键字 7.1 super应用举例 8. abstract关键字 9. final关键字 9.1 final介绍 9.2 final使用注意事项 三、继承 1、继承的概念 1.1 继承的定义 1.2 继承举例 1.3 父类和子类 类继承 2.1 方法继承 2.2 方法覆盖 2.3 方法重载 3、多态与动态绑定 3.1 多态分为两种 3.2 调用一个对象方法的机制 3.3 方法调用举例 4、构造函数的重载 4.1 默认字段初始化 4.2 默认构造函数 4.3 显式字段初始化 4.4 构造函数被调用后的详细执行过程 5、包 5.1 创建包 5.2 创建可复用类的步骤简要说明 5.3 包的导入 5.4 包的可见性 接口 6.1 接口的概念 6.2 接口的声明 6.3 接口的实现 四、IO流及异常处理 1、流和文件 1.1 流 1.2 文件 2、常用流类 2.1 字节流 2.1.1 InputStream(输入流) 2.1.2 OutputStream(输出流) 2.1.3 FileInputStream(文件输入流) 2.1.4 FileOutputStream(文件输出流) 2.1.5 BufferedInputStream(缓冲输入流) 2.1.6 BufferedOutputStream(缓冲输出流) 2.1.7 PrintStream(打印流) 2.2字符流 2.2.1 Reader类 2.2.2 Writer类 2.2.3 FileReader类 2.2.4 FileWriter类 2.2.5 CharArrayReader类 2.2.6 CharArrayWriter类 2.2.7 BufferedReader类 2.2.8 BufferedWriter类 2.2.9 PrintWriter类 2.2.10 System.in对象和System.out对象 文件处理 3.1 创建或打开、关闭文件对象 3.2 关闭文件 3.3 read()方法 3.4 write()方法 3.5 其他操作文件的方法 4、Java异常处理 4.1 Java异常概念 4.2 异常类型 4.3 Java的内置异常 4.4 Java异常举例 4.5 异常的捕获和处理 4.6 异常抛出 4.6.1 throw语句 4.6.2 throws语句 4.6.3 finally语句 4.7 自定义异常类 4.8 异常应用的其他问题 4.9 异常应用举例 五、线程 1、线程的概念 1.1 程序、进程与线程 1.2 线程调度与优先级 1.3 线程的状态与生命周期 1.4 控制一个线程生命周期最常用的方法 2、线程的创建和启动 3、线程的同步与死锁 3.1 同步的概念 3.2 线程同步举例 3.3 线程死锁 六、GUI 1、图形用户界面概述 1.1 组件 1.2容器 1.3 AWT组件 1.4 Swing组件 1.5 组件与容器的关系 1.6 swing常用组件 2、Swing常用组件 2.1文本组件 2.2 标签 2.3 按钮 2.4单选按钮组件 2.5 复选框组件 2.6列表框组件 2.7组合框组件 2.8滑块组件 事件处理 3.1 事件处理原理 3.2 事件架构 3.3 焦点事件 3.4 键盘事件 3.5 鼠标事件 4、布局设计 4.1 FlowLayout流布局 4.2 BorderLayout边界布局 4.3 CardLayout卡式布局 4.4 GridLayout卡式布局 4.5 GridBagLayout卡式布局 4.6 BoxLayout盒式布局 5、菜单步骤 6、对话框设计 6.1 JOptionPane对话框 6.2 JDialog对话框 文字与图形处理 7.1 文本和字体 7.2 简单图形绘制 7.3 颜色 7.4 图像处理 七、网络 1、Java网络编程简介 1.1 IP网间协议 1.2 TCP传输控制协议 1.3 UDP用户数据包协议 2、URL连接 2.1 URL 2.2 Java.net包中URL类定义 2.3 创建URL对象 2.4 Java.net包中URLConnection类 2.5 AppletContext接口类 2.6 获取网络属性信息 2.7 创建输入流(InputStream)对象 3、SOCKET连接 3.1 Socket通信的一般结构 3.2 TCP Socket编程 3.2.1 Socket类 3.2.2 ServerSocket类 3.3 UDP Socket编程 八、Java概念疑难解答 第2章 Java经典练习题 2.1 斐波那契数列 2.2 判断素数 2.3 水仙花数 2.4 分解质因数 2.5 杨辉三角 2.6 学习成绩查询 2.7 求最大公约数与最小公倍数 2.8 完全平方数 2.9 统计字母、空格、数字和其它字符个数 2.10 求主对角线之和 2.11 完数求解 2.12 求s=a+aa+aaa+aaaa+aa...a的值 2.13 高度计算 2.14 乘法口诀 2.15 无重复三位数 2.16 菱形打印 2.17 利润计算 2.18 第几天判断 2.19 从小到大输出数列 2.20 猴子吃桃问题 2.21 乒乓球比赛 2.22 求分数之和 2.23 求阶乘的和 2.24 递归求法 2.25 求不多于5的正整数 2.26 回文判断 2.27 星期判断 2.28 插数入数组 2.29 取整数的任意位 2.30 按顺序输出数列 2.31 位置替换 2.32 字符串排序 2.33 贷款器 2.34 通讯录排序 2.35 闰年判断 2.36 二元方程求解 2.37 密码解译 2.38 DVD查询 2.39 电子日历 2.40 万年历 第二篇 提高篇 第3章 Java常用算法 3.1递归算法 3.2冒泡排序算法 3.3 快速排序算法 3.4选择排序算法 3.5直接插入算法 3.6希尔排序算法 3.7 二分查找算法 3.8 二叉树 3.9 图的实现 3.10 生产者消费者的实现 3.11 银行家算法 3.12 KMP算法 3.13 RSA的实现 第4章 IO流实例开发 4.1流到底怎样输入和输出扯淡区 4.2 FileInputStream的应用 4.3 FileOutputStream的应用 4.4 FileReader的应用 4.5 FileWriter的应用 4.6 BufferedInputStream的应用 4.7 BufferedOutputStream的应用 4.8 BufferedReader的应用 4.9 BufferedWriter的应用 第5章 Java图形界面开发 5.1 开发自己的控件 5.2 控件的排布示例 5.3 开发自己的QQ聊天系统 5.4 颜色选择器 5.5 按钮测试 5.6 密码验证器 5.7 绘制自己的坐标 5.8 多种字体显示 5.9 窗口风格选择器 5.10 右键菜单 5.11 树形关系网 5.12 开发自己的文本编辑器 5.13 开发自己的剪切板 5.14 文本拖动效果演示 5.15 怎样拖动图片 5.16 开发自己的数字时钟 5.17 数字动画 5.18 滑杆调试器 5.19 启动程序开发 5.20 开发自己的调色板 5.21 文件选择器 5.22 丰富多彩的光标选择器 5.23 开发自己的浏览器 5.24 文字抖动效果演示 5.25 文字阴影效果演示 5.26 3D文字效果演示 5.27 波浪文字效果演示 5.28 飞行文字效果演示 5.29 伸展文字效果演示 5.30 开发自己的网页图片 5.31 火焰图片效果演示 5.32 图片百叶窗效果演示 5.33 图片倒影效果演示 5.34 怎样翻转图片 5.35 开发自己的闹钟 5.36 应用自己的万年历 5.37 开发自己的计算器 5.38 开发自己的电子相册 第6章 Java游戏 6.1 俄罗斯方块 6.2 连连看游戏 6.3 迷宫 6.4 模拟闪电 6.5 扫雷 6.6 贪食蛇 6.7 围棋 6.8 五子棋 6.9 人机猜拳游戏 第三篇 实战篇 第7章 项目开发 7.1 开发自己的浏览器 7.2 开发自己的象棋游戏 7.3 网络主机线程扫描与端口控制

62,614

社区成员

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

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