📄 kawtdemo.java
字号:
import java.awt.*;
import java.awt.event.*;
import de.kawt.*;
public class KawtDemo extends KAWTlet implements ActionListener {
class LayoutPanel extends Panel implements ActionListener {
LayoutManager saveBorder;
KAWTlet kawtlet;
LayoutPanel () {
super (new BorderLayout ());
addButton ("North", "grid");
addButton ("West", "exit");
addButton ("Center", "dialog");
addButton ("East", "flow");
addButton ("South", "border");
saveBorder = getLayout ();
validate ();
}
void addButton (String where, String label) {
Button b = new Button (label);
add (where, b);
b.addActionListener (this);
b.setActionCommand (label);
}
public void actionPerformed (ActionEvent e) {
String cmd = e.getActionCommand ();
if (cmd.equals ("grid"))
setLayout (new GridLayout (3, 2));
else if (cmd.equals ("flow"))
setLayout (new FlowLayout ());
else if (cmd.equals ("border"))
setLayout (saveBorder);
else if (cmd.equals ("dialog")) {
if (OptionDialog.showConfirmDialog
(frame, "Do you like kAWT?", "Sample Dialog")
== OptionDialog.NO_OPTION)
OptionDialog.showInputDialog
(frame, "Why don't you like it?");
}
else if (cmd.equals ("exit")) {
notifyDestroyed ();
}
validate ();
}
}
class MiscPanel extends Panel implements ActionListener, ItemListener {
Checkbox checkBox1;
Checkbox checkBox2;
Checkbox titlebox;
TextField tf;
MiscPanel () {
super (new GridLayout (0, 1));
CheckboxGroup group = new CheckboxGroup ();
checkBox1 = new Checkbox ("Public text", false, group);
checkBox1.addItemListener (this);
checkBox2 = new Checkbox ("Hidden text", false, group);
checkBox2.addItemListener (this);
add (checkBox1);
add (checkBox2);
titlebox = new Checkbox ("Show Frame Title", true);
titlebox.addItemListener (this);
add (titlebox);
tf = new TextField ("Test");
add (tf);
Choice choice = new Choice ();
choice.add ("red");
choice.add ("green");
choice.add ("blue");
add (choice);
addButton ("beep");
addButton ("exit");
}
void addButton (String label) {
Button b = new Button (label);
add (b);
b.addActionListener (this);
b.setActionCommand (label);
}
public void itemStateChanged (ItemEvent ev) {
if (ev.getSource () == titlebox) {
if (ev.getStateChange () == ev.SELECTED)
frame.setTitle ("kAWT Demo v0.9903");
else
frame.setTitle (null);
//getFrame ().validate ();
}
else if (ev.getStateChange () == ev.SELECTED) {
tf.setEchoChar (ev.getSource () == checkBox2 ? '*' : '\0');
tf.setText (tf.getText ());
}
}
public void actionPerformed (ActionEvent ev) {
if (ev.getActionCommand ().equals ("beep")) {
Toolkit.getDefaultToolkit ().beep ();
}
else {
destroyApp (true);
notifyDestroyed ();
}
}
}
class ScrollbarPanel extends Panel implements ActionListener {
ScrollbarPanel () {
super (new BorderLayout ());
Panel center = new Panel (new GridLayout (0, 2));
java.awt.List list = new java.awt.List ();
for (int i= 0; i < 16; i++)
list.add ("item "+i);
center.add (list);
TextArea ta = new TextArea ();
ta.setText ("This is an example of a simple TextArea with automatic word wrapping in this text block and some hard line breaks below.\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n");
center.add (ta);
Button exitB = new Button ("exit");
exitB.addActionListener (this);
exitB.setActionCommand ("exit");
add ("Center", center);
add ("South", exitB);
validate ();
}
public void actionPerformed (ActionEvent e) {
String cmd = e.getActionCommand ();
if (cmd.equals ("exit")) {
destroyApp (true);
notifyDestroyed ();
}
}
}
Frame frame = new Frame ("kAWT Demo v1.0");;
Dialog dialog;
TabbedPane tabPane;
public KawtDemo () {
MenuBar menuBar = new MenuBar ();
Menu menu = new Menu ("Info");
MenuItem mi = new MenuItem ("About kAWT");
mi.addActionListener (this);
menu.add (mi);
mi = new MenuItem ("Memory");
mi.addActionListener (this);
menu.add (mi);
menuBar.add (menu);
menu = new Menu ("Tabs");
for (int i = 1; i <= 3; i++) {
mi = new MenuItem ("Tab "+i);
mi.addActionListener (this);
menu.add (mi);
}
menuBar.add (menu);
frame.setMenuBar (menuBar);
tabPane = new TabbedPane();
tabPane.addTab ("Layout", new LayoutPanel ());
//tabPane.addTab ("Color", new MemPanel ());
tabPane.addTab ("Scroll", new ScrollbarPanel ());
tabPane.addTab ("Misc", new MiscPanel ());
frame.add ("Center", tabPane);
//getRootPane ().add ("Center", new LayoutPanel ());
frame.addWindowListener (new Closer (this));
frame.pack ();
}
public void startApp () {
frame.show ();
}
public void destroyApp (boolean uncond) {
frame.dispose ();
}
public void actionPerformed (ActionEvent e) {
String cmd = e.getActionCommand ();
if (cmd.equals ("About kAWT")) {
OptionDialog.showMessageDialog
(frame, "For information about kAWT, please visit\nhttp://www.kawt.de");
}
else if (cmd.equals ("Memory")) {
int count = 0;
long free0 = Runtime.getRuntime().freeMemory ();
long free = free0;
while (true) {
Runtime.getRuntime().gc();
long newFree = Runtime.getRuntime().freeMemory ();
if (newFree <= free) break;
count ++;
free = newFree;
}
OptionDialog.showMessageDialog
(frame, "ini: "+free0+"\ngc"+count+": "+free);
}
else {
int nr = Integer.parseInt (cmd.substring (4));
tabPane.setSelectedIndex (nr-1);
}
}
public static void main (String [] argv) {
new KawtDemo ().startApp ();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -