昨天年会,节目排练以及正式上演,还有年会完一起吃火锅。所以一天跟小伙伴都在为这两件事准备。置于结果呢,也还是好的,节目反响较好,我们的准备没有白费;火锅吃的也比较嗨,一行人吹吹牛皮,怼一怼人,感觉很开心。一年来,真的似乎没有比这次更放得开的了。吃过火锅,又打牌打麻将,游戏黑洞表示,保皇党演起来连自己都骗...怪就怪啤酒太好喝了吧。
说了这么多,依然是没有改变自己没有更博文看书的事实,那就按规定,断食一天,将昨天的补上。
异常是Exception类型的对象。
编译器不会注意RuntimeException类型的异常。
finally块是用来存放不管有没有异常都得执行的程序。
try {
turnOvenOn();
x.bark();
} catch (BakingException ex) {
ex.printStackTrace();
} finally {
turnOvenOff();
}
如果try或catch块有return指令,finally还是会执行!
异常处理规则:
- catch与finally不能没有try。
- try与catch之间不能有程序。
- try一定要有catch或finally。
- 只带有finally的try必须要声明异常。
输入代码然后运行,听到单一钢琴音。个人的一小步,人类历史上无关痛痒的一大步。
import javax.sound.midi.*;
public class MiniMiniMusicApp {
public static void main(String [] args) {
MiniMiniMusicApp mini = new MiniMiniMusicApp();
mini.play();
}
public void play() {
try {
Sequencer player = MidiSystem.getSequencer();
player.open();
Sequence seq = new Sequence(Sequence.PPQ,4);
Track track = seq.createTrack();
ShortMessage a = new ShortMessage();
a.setMessage(144,1,44,100);
MidiEvent noteOn = new MidiEvent(a,1);
track.add(noteOn);
ShortMessage b = new ShortMessage();
b.setMessage(128,1,44,100);
MidiEvent noteOff = new MidiEvent(b,16);
track.add(noteOff);
player.setSequence(seq);
player.start();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
12 图形用户接口
JFrame是代表屏幕上window的对象。你可以吧button、checkbox、text字段等接口放在window上面。标准的menu也可以加到上面,并且能够带最小化、最大化、关闭等图标。
创建GUI
1.创建frame
JFrame frame = new JFrame();
2.创建widget
JButton button = new JButton("click me");
3.把widget加到frame上
frame.getContentPane().add(button);
4.显示出来
frame.setSize(300,300);
frame.setVisible(true);
你的第一个GUI
import javax.swing.*;
public class MiniMiniMusicApp {
public static void main (String[] args) {
JFrame frame = new JFrame();
JButton button = new JButton("Cheer up!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(button);
frame.setSize(300,300);
frame.setVisible(true);
}
}