java之创建窗口和程序片详解,如下所示:
init()方法:程序片第一次被创建,初次运行初始化程序片时调用。
stop()方法:每次程序片从web浏览器的视线中离开时调用,时程序片能关闭代价高昂的操作;同样在调用destroy()前调用。
destroy()方法:程序片不再需要,将它从页面中卸载时调用。
start()方法:每当程序片进入web浏览器中,并且允许程序片启动他的常规操作时调用(特殊的程序片被stop()关闭);同样在init()后调用。
paint()方法:基础类component的一部分(继承结构中上朔三级)。作为update()的一部分调用,以便对程序片的画布进行特殊的描绘。
2.事件模型:(1)先在类中添加addxxxxxlistener()方法。
(2)重写执行接口的方法。
package thirteen;import java.awt.*;import java.awt.event.*;import java.applet.*;public class button2new extends applet {
button b1 = new button(button1), b2 = new button(button2);public void init() {
b1.addactionlistener(new b1());
b2.addactionlistener(new b2());
add(b1);
add(b2);
}class b1 implements actionlistener {public void actionperformed(actionevent e) {
getappletcontext().showstatus(button1);
}
}class b2 implements actionlistener {public void actionperformed(actionevent e) {
getappletcontext().showstatus(button2);
}
}
}
3.制作窗口:(1)main()方法中新建一个frame类,并将applet的衍生类给其初始化。
(2)继承windowadapter类,并重写windowclosing()方法。
(3)执行frame的setvisible()方法。
package thirteen;import java.applet.*;import java.applet.*;import java.awt.borderlayout;import java.awt.button;import java.awt.textfield;import java.awt.desktop.action;import java.awt.frame;import java.awt.event.*;import java.time.temporal.temporalqueries;import javax.swing.table.tablerowsorter;import org.omg.corba.floatseqhelper;public class textnew extends applet {
button b1 = new button(get text), b2 = new button(set text);
textfield t1 = new textfield(30), t2 = new textfield(30), t3 = new textfield(30);
string s = new string();public void init() {
b1.addactionlistener(new b1());
b2.addactionlistener(new b2());
t1.addtextlistener(new t1());
t1.addactionlistener(new t1a());
t1.addkeylistener(new t1k());
add(b1);
add(b2);
add(t1);
add(t2);
add(t3);
}class t1 implements textlistener {public void textvaluechanged(textevent e) {
t2.settext(t1.gettext());
}
}class t1a implements actionlistener {private int count = 0;
@overridepublic void actionperformed(actionevent e) {// todo 自动生成的方法存根t3.settext(t1 action event + count++);
}
}class t1k extends keyadapter {public void keytyped(keyevent e) {
string tstring = t1.gettext();if (e.getkeychar() == keyevent.vk_back_space) {if (tstring.length() > 0) {
tstring = tstring.substring(0, tstring.length() - 1);
t1.settext(tstring);
}
}elset1.settext(t1.gettext()+character.touppercase(e.getkeychar()));
t1.setcaretposition(t1.gettext().length());
e.consume();
}
} class b1 implements actionlistener{public void actionperformed(actionevent e){
s=t1.getselectedtext();if(s.length()==0)s=t1.gettext();
t1.seteditable(true);
}
}class b2 implements actionlistener{public void actionperformed(actionevent e){
t1.settext(insert by button2:+s);
t1.seteditable(false);;
}
} public static void main(string[] args){
textnew applet=new textnew();
frame aframe=new frame(textnew);
aframe.addwindowlistener(new windowadapter() {public void windowclosing(windowevent e){
system.exit(0);
}
});
aframe.add(applet, borderlayout.center);
aframe.setsize(300,200);
applet.init();
applet.start();
aframe.setvisible(true);
}
}
4.javabean要求:
(1)所有的类必须放在一个包中,在web中没有包是不存在的。
(2)所有的类必须声明为public class,这样才能够被外部访问。
(3)类中所有的属性都必须封装,使用private声明。
(4)封装的属性如果需要被外部所操作,则必须编写对应的setter,getter方法。
(5)一个javabean中至少存在一个无参构造方法。
5.swing各种边框的一个例子:
package thirteen;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class borders extends jpanel {static jpanel showborder(border b) {
jpanel jpanel = new jpanel();
jpanel.setlayout(new borderlayout());
string nm = b.getclass().tostring();
nm = nm.substring(nm.lastindexof('.') + 1);
jpanel.add(new jlabel(nm, jlabel.center), borderlayout.center);
jpanel.setborder(b);return jpanel;
}public borders() {
setlayout(new gridlayout(2, 4));
add(showborder(new titledborder(title)));
add(showborder(new etchedborder()));
add(showborder(new lineborder(color.blue)));
add(showborder(new matteborder(5, 5, 30, 30, color.green)));
add(showborder(new bevelborder(bevelborder.raised)));
add(showborder(new softbevelborder(bevelborder.lowered)));
add(showborder(new compoundborder(new etchedborder(), new lineborder(color.red))));
}public static void main(string[] args) {
show.inframe(new borders(), 500, 300);
} static class show {public static void inframe(jpanel jpanel, int width, int height) {
string title = jpanel.getclass().tostring();if (title.indexof(class) != -1)
title = title.substring(6);
jframe frame = new jframe(title);
frame.addwindowlistener(new windowadapter() {public void windowclosing(windowevent e) {
system.exit(0);
}
});
frame.getcontentpane().add(jpanel, borderlayout.center);
frame.setsize(width, height);
frame.setvisible(true);
}
}
}
以上就是java之创建窗口和程序片详解的详细内容。