JAVA的GUI编程笔记
关于数据库连接后执行并输出的问题:
标准写法:
String str="数据库执行语句";
Statement state=con.createStatement();
ResultSet rs=state.executyQuery(str);
while(re.next()){
rs.getString("需要输出的列的名字");
}
缩写写法:
String str="数据库执行语句";
ResultSet rs=con.createStatement.executyQuery(str);
while(re.next()){
rs.getString("需要输出的列的名字");
}
绝不可以再缩写:
String str="SQLserver执行语句";
while(con.createStatement.executyQuery(str).next()){
rs.getString("需要输出的列的名字");
}
这样会进入死循环。如果写入GUI按钮鼠标点击事件内,会导致程序卡死。
实现通过点击按钮来关闭界面
public static void init() {
JFrame frame = new JFrame("登记");
frame.setContentPane(new 登记(frame).rootpanel);//这里传入参数值frame
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public 登记(JFrame frame) {//设定传入的参数值类型为JFrame
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
}
}
静态变量的使用感想
在A类命名的静态变量a。不管在B类中new了A类多少的对象,这些对象中a
的值都是一样的。
实现按钮音效
方法一:
为音乐的播放准备单独的一个类,该类中定义一个播放音乐方法,按钮在点击时调用该方法。
//音乐播放类
import java.io.File;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.*;
public class musicPlayer {
public void play(){
try{
Player playEr = new Player(new BufferedInputStream(new FileInputStream(new File("E:\\gop.mp3"))));
}catch(Exception e){}
}
}
//按钮播放
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
musicPlayer mp=new musicPlayer();
try{
mp.play();
}catch (Exception g){}
....
}
}
此方法有明显的缺陷,按钮点击后,必须播放完音乐才能执行按钮中的其它程序。 把播放音乐那段移到最后进行不就行了?
方法二:
在方法一的基础上使用多线程
//改写音乐播放类为:
public class musicPlayer extends Thread {
public void run(){
try {
Player player = new Player(new BufferedInputStream(new FileInputStream(new File("E:\\gop.mp3"))));
player.play();
} catch (Exception g) {}
}
}
//鼠标点击事件
Button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
musicPlayer mp=new musicPlayer();
try{
new musicPlayer.start();
}catch(Exception g){}
....
}
}