第5章 用户界面设计
//例程5-1:WindowDemo.java import java.awt.*; import java.awt.event.*; public class WindowDemo {
public static void main(String[] args) {
AppFrame f = new AppFrame(); f.setSize(150, 150); //设置窗口的大小 f.addWindowListener(new WindowAdapter () {
public void windowClosing(WindowEvent e) {System.exit(0);} }); f.show();
}
}
class LabelWindow extends Window {
Label label;
LabelWindow(AppFrame af) { }
public void paint(Graphics g) { }
int width = getSize().width; int height = getSize().height; g.drawRect(0, 0, width, height);
//为窗口绘制边框
super(af);
setLayout(new FlowLayout());
label = new Label(\add(label);
//添加组件
}
class AppFrame extends Frame implements ActionListener {
Button bShow, bHide; LabelWindow window; AppFrame() {
setLayout(new FlowLayout());
bShow = new Button(\add(bShow);
bShow.addActionListener(this);
bHide = new Button(\add(bHide);
bHide.addActionListener(this); window = new LabelWindow(this); window.setSize(300,200); window.setLocation(300,300);
}
public void actionPerformed(ActionEvent e) {
//根据事件源决定具体的事件处理 if (e.getSource() == bShow) { }
if (e.getSource() == bHide) { }
window.setVisible(false); window.setVisible(true);
}
}
//例程5-2:SplitDemo.java import javax.swing.*; import java.awt.event.*; public class SplitDemo {
public static void main(String[] args) {
JFrame frame = new JFrame(\frame.setSize(300,150);
//建立两个文本字段,并以其为基础建立一个分割面板 JTextField text1 = new JTextField(\JTextField text2 = new JTextField(\
JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, text1, text2); frame.getContentPane().add(split);
frame.addWindowListener(new WindowAdapter() { });
frame.setVisible(true);
public void windowClosing (WindowEvent e) { }
System.exit(0);
}
}
//例程5-3:TabbedPaneDemo.java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TabbedPaneDemo {
public static void main(String[] args) {
JFrame frame = new JFrame(\JTabbedPane tabbedPane = new JTabbedPane(); Dimension dim = new Dimension(200,100); frame.setSize(dim);
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel1.add(new JLabel(\panel2.add(new JLabel(\
//为标签面板添加两组标签,并设置标签的显示位置 tabbedPane.addTab(\tabbedPane.addTab(\tabbedPane.setTabPlacement(JTabbedPane.BOTTOM); frame.getContentPane().add(tabbedPane);
frame.addWindowListener(new WindowAdapter() { });
frame.setVisible(true);
public void windowClosing (WindowEvent e) { }
System.exit(0);
}
}
//例程5-4:FlowLayoutDemo.java import java.awt.*; import java.awt.event.*; public class FlowLayoutDemo {
public static void main(String[] args) {
Frame frame = new Frame(\
frame.setLayout(new FlowLayout()); //为容器设置相应的布局管理器 frame.add(new Button(\ frame.add(new Button(\
frame.add(new Button(\
frame.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e) {
System.exit(0); } }); frame.pack(); frame.setVisible(true); } }
//例程5-5:gradLayout.java
//自动调整窗口到合适大小
import java.awt.*;
import java.awt.event.*; public class gradLayout{ public static void main(String[] args) { Frame frame = new Frame(); frame.setTitle(\
}
}
frame.setLayout(new GridLayout(2,1)); //设置相应的网格布局管理器 frame.add(new Button(\frame.add(new Button(\frame.add(new Button(\
frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });
frame.pack();
frame.setVisible(true);
//例程5-6:gradbagLayout.java import java.awt.*; import java.awt.event.*; public class gradbagLayout{
public static void main(String[] args) { // 数
frame.add(button); constraints.gridx = 1; constraints.weightx = 0.3;
button = new Button(\gridbag.setConstraints(button,constraints);
//为Button 2设置限制参数
Frame frame = new Frame();
frame.setTitle(\GridBagLayout gridbag = new GridBagLayout();
//新建网格包实例
GridBagConstraints constraints = new GridBagConstraints(); //新建网格包限制实例 frame.setLayout(gridbag); Button button;
constraints.fill = GridBagConstraints.BOTH; //1st row constraints.gridx = 0; constraints.gridy = 0; constraints.weightx = 0.5; button = new Button(\
根据之前设定的约束,在布局管理器中安排组件
//为Button 1设置限制参
gridbag.setConstraints(button,constraints);
frame.add(button); constraints.gridx = 2; constraints.weightx = 0.2; button = new Button(\gridbag.setConstraints(button,constraints); frame.add(button);
constraints.gridx = 0; //2nd row constraints.gridy = 1; constraints.gridwidth = 2; constraints.gridheight = 3;
button = new Button(\gridbag.setConstraints(button,constraints); frame.add(button); constraints.gridx = 2; constraints.gridy = 1; constraints.gridwidth = 1; constraints.gridheight = 1; button = new Button(\gridbag.setConstraints(button, constraints); frame.add(button); constraints.gridx = 2; constraints.gridy = 3; constraints.gridwidth = 1; constraints.gridheight = 1; constraints.ipadx = 20; constraints.ipady = 20;
button = new Button(\gridbag.setConstraints(button, constraints); frame.add(button);
constraints.gridx = 1; //3rd row constraints.gridy = 4; constraints.ipadx =0; constraints.ipady =0;
constraints.fill = GridBagConstraints.NONE; constraints.insets = new Insets(10,10,10,10);
constraints.anchor = GridBagConstraints.SOUTHEAST; button = new Button(\gridbag.setConstraints(button,constraints); frame.add(button);
//为Button 7设置限制参数
//为Button 6设置限制参数
//为Button 5设置限制参数
//为Button 4设置限制参数
//为Button 3设置限制参数
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Java程序设计教程 冶金工业出版社第5章在线全文阅读。
相关推荐: