- 关于StatusbarBuilder的说明: 介绍API说明、设计思路以及当前存在的问题。
- SlightBevelBorder.java :SlightBevelBorder类源代码。
- StatusbarBuilder.java:StatusbarBuilder类源代码。
- TestStatusbar.java:测试程序
/*===============================================================================
* 说明:
* 这是StatusbarBuilder的一个测试。StatusbarBuilder是我新做的一个类,也可以说是
* 我学java以来第一个比较满意的作品,虽然确实还存在一些问题。但时间不允许,所以暂告
* 一段落。希望这个小东东能给你开发带来帮助。
*===============================================================================
* auto: Jason
* csdn: Unagain
* email: tl21cen@hotmail
* date: 2006-4-13
*/
package tl.util.test;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.BevelBorder;
import tl.util.StatusbarBuilder;
public class TestStatusbar {
public static void main(String[] args) {
StatusbarBuilder bar1, bar2;
BevelBorder border =
new BevelBorder(BevelBorder.LOWERED);
JFrame fr1 = new JFrame();
JFrame fr2 = new JFrame();
fr1.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE);
bar1 = StatusbarBuilder.getInstance(fr1);
bar1.add(new JLabel("Main Window"), 100);
bar1.add(new JTextField("JTextField"), 100);
JButton btn = new JButton("JButton" );
bar1.add(btn);
bar1.notice("create bar using default setting.");
final StatusbarBuilder bar = bar1;
final JFrame fr = fr2;
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
fr.dispose();
if (fr == null) {
bar.notice("fr2 disposed.");
return;
}
bar.notice("show fr2.");
fr.setVisible(true);
}
});
JTextArea t1 = new JTextArea();
t1.setBorder(border);
fr1.add(t1,BorderLayout.CENTER);
JTextArea t2 = new JTextArea();
t2.setBorder(border);
fr2.add(t2,BorderLayout.CENTER);
fr2.setDefaultCloseOperation(
JFrame.DISPOSE_ON_CLOSE);
final JTextField notice = new JTextField();
notice.addComponentListener(
new ComponentListener(){
public void componentResized(ComponentEvent e) {
notice.setText(e.paramString());
}
public void componentMoved(ComponentEvent e) {
notice.setText(e.paramString());
}
public void componentShown(ComponentEvent e) {
notice.setText(e.paramString());
}
public void componentHidden(ComponentEvent e) {
notice.setText(e.paramString());
}
});
StatusbarBuilder.setNotice(notice);
StatusbarBuilder.setBackground(Color.LIGHT_GRAY);
StatusbarBuilder.setBarStyle(StatusbarBuilder.PLAIN);
StatusbarBuilder.setGap(5);
StatusbarBuilder.setHeight(30);
bar2 = StatusbarBuilder.getInstance(fr2);
bar2.add(new JLabel("Sub Window."));
bar2.add(new JLabel("Hello"), 60);
fr1.setPreferredSize(new Dimension(400, 300));
fr2.setPreferredSize(new Dimension(300, 200));
fr1.pack();
fr2.pack();
fr1.setVisible(true);
fr2.setVisible(true);
}
}