练习25改变文本对齐方式练习25 改变文本对齐方式
本例知识点
一句话讲解
新学知识
使用Box类
通过该类实现界面的箱式布局
使用JCheckBox类
通过该类创建复选框
已学知识
使用按钮类JButton
生成按钮
使用颜色类Color
设置背景颜色
一、练习具体要求
本练习制作改变文本对齐方式的实例。如图25-1所示,程序执行后将创建一个面板,该面板含有可以控制文字可以按照“上下左右中”五个方向对齐。当用户选中相应的复选框的时候可以看到文字和图片的对齐效果。
二、程序及注释
(1)编程思路:本练...
练习25 改变文本对齐方式
本例知识点
一句话讲解
新学知识
使用Box类
通过该类实现界面的箱式布局
使用JCheckBox类
通过该类创建复选框
已学知识
使用按钮类JButton
生成按钮
使用颜色类Color
设置背景颜色
一、练习具体要求
本练习制作改变文本对齐方式的实例。如图25-1所示,程序执行后将创建一个面板,该面板含有可以控制文字可以按照“上下左右中”五个方向对齐。当用户选中相应的复选框的时候可以看到文字和图片的对齐效果。
二、程序及注释
(1)编程思路:本练习因为要制作改变文本对齐方式的实例,所以首先要生成一个复选框面板,只是通过手动编写的类CheckBoxPanel来实现的,先通过实例化Box类将界面的布局风格设置为箱式布局,再通过利用JcheckBox类创建五个实例,最后将所有复选框加载组合,形成一个复选框面板。然后,为实现文本对齐方式的动态选择,所以要响应用户的选择,这是通过函数public void actionPerformed(ActionEvent ae)完成的。
(2)程序实现及注释:
//CheckBoxPanel.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CheckBoxPanel extends JPanel implements SwingConstants{
public CheckBoxPanel(ActionListener al){
//变量定义
Box vertBox = Box.createVerticalBox();
Box topBox = Box.createHorizontalBox();
Box middleBox = Box.createHorizontalBox();
Box bottomBox = Box.createHorizontalBox();
ButtonGroup group = new ButtonGroup();
//创建复选框
//上
JCheckBox north = new JCheckBox("文字上对齐");
north.addActionListener(al);
north.setActionCommand("文字上对齐");
north.setBackground(Color.orange);
group.add(north);
topBox.add(north);
//左
JCheckBox west = new JCheckBox("文字左对齐");
west.addActionListener(al);
west.setActionCommand("文字左对齐");
west.setBackground(Color.orange);
group.add(west);
middleBox.add(west);
//中
JCheckBox center = new JCheckBox("文字中心对齐");
center.addActionListener(al);
center.setActionCommand("文字中心对齐");
center.setBackground(Color.red);
group.add(center);
middleBox.add(center);
//右
JCheckBox east = new JCheckBox("文字右对齐");
east.setBackground(Color.orange);
east.addActionListener(al);
east.setActionCommand("文字右对齐");
//下
group.add(east);
middleBox.add(east);
JCheckBox south = new JCheckBox("文字下对齐");
south.addActionListener(al);
south.setActionCommand("文字下对齐");
south.setBackground(Color.orange);
group.add(south);
bottomBox.add(south);
//加载复选框
vertBox.add (topBox);
vertBox.add (middleBox);
vertBox.add (bottomBox);
add(vertBox);
}
}
//CheckBoxExample.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class CheckBoxExample extends JPanel implements ActionListener,SwingConstants{
//变量声明
static JFrame myFrame;
protected JLabel label;
JButton theButton;
//构造函数
public CheckBoxExample(){
Icon icon = new ImageIcon ("java.jpg");
theButton = new JButton("My java",icon);
theButton.setBackground(Color.green);
add (theButton);
add (new CheckBoxPanel(this));
}
//响应用户动作
public void actionPerformed(ActionEvent ae){
String action = ae.getActionCommand();
if (action.equals("文字上对齐")){
theButton.setVerticalTextPosition(TOP);
theButton.setHorizontalTextPosition(CENTER);
}
else if (action.equals("文字下对齐")){
theButton.setVerticalTextPosition(BOTTOM);
theButton.setHorizontalTextPosition(CENTER);
}
else if (action.equals("文字右对齐")){
theButton.setHorizontalTextPosition(RIGHT);
theButton.setVerticalTextPosition(CENTER);
}
else if (action.equals("文字左对齐")){
theButton.setHorizontalTextPosition(LEFT);
theButton.setVerticalTextPosition(CENTER);
}
else if (action.equals("文字中心对齐")){
theButton.setHorizontalTextPosition(CENTER);
theButton.setVerticalTextPosition(CENTER);
}
}
//主函数
public static void main(String args[]){
myFrame = new JFrame("用复选框控制文字对齐");
CheckBoxExample jt = new CheckBoxExample();
myFrame.getContentPane().add("Center",jt);
myFrame.setSize(400,250);
myFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
myFrame.setVisible(true);
}
}
三、练习效果(如图25-1所示)
本实例代码编写完毕,分别存盘为:C: j2sdk1.4.0\javaprograms\ CheckBoxPanel.java.java 和CheckBoxExample.java。打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javac CheckBoxExample.java 来编译程序,输入java CheckBoxExample就可以看到制作效果。
图25-1 练习效果
四、
提高
在本练习中,利用Java2提供的一些库函数实现了改变文本对齐方式的制作。
通过图形界面的技术,完成了界面控件的制作和颜色设置。
通过运用Windows下程序中对事件的响应,实现了人机交互。
本文档为【练习25改变文本对齐方式】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。