标签 JLabel
package my;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame{
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// new JLabel() :可以理解为生了一个小孩
// JLable ss = new JLabel() : 可以理解为生了一个小孩, 并起名为ss
//此行代码也可以写在MyFrame方法外面
JLabel label = new JLabel();
contentPane.add(label);
label.setText("你好");
label.setFont(new Font("微软雅黑", 0, 14));
label.setForeground(new Color(0, 255, 0));
label.setToolTipText("http://baidu.com");
}
}
文本框JTextField
package my;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class MyFrame extends JFrame{
//此行代码也可以写在MyFrame方法里面
JLabel label = new JLabel("姓名");
// 注意:构造参数,16表示16列,用于计算宽度显示,并不是字符个数限制
JTextField textField = new JTextField(16);
JButton button = new JButton("确定");
public MyFrame(String title){
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// 添加控件
contentPane.add(label);
contentPane.add(textField);
contentPane.add(button);
// 按钮点击处理
button.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
onButtonOk();
}
});
}
// 事件处理
private void onButtonOk()
{
String str = textField.getText();
// 消息提示框 ( 注意 showMessageDialog() 是静态方法 )
JOptionPane.showMessageDialog(this, "输入了: " + str);
}
}
复选框JCheckBox
package my;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MyFrame extends JFrame
{
JCheckBox cbx = new JCheckBox("我想订阅邮件通知");
JTextField email = new JTextField(16);
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// 添加控件
contentPane.add(cbx);
contentPane.add(email);
cbx.setSelected(true); // 默认选中
email.setToolTipText("输入邮箱地址");
cbx.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
// 如果未选中,则禁用文本框
if(cbx.isSelected())
email.setEnabled(true);
else
email.setEnabled(false);
// 注: cbx, email都是外部类里属性,完整写法是 MyFrame.this.cbx
// 注:可以简写为 email.setEnabled(cbx.isSelected())
}
});
}
}
下拉列表JComboBox
package my;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame{
// JComboBox就一个泛型 , 参数类型是数据项的类型
JComboBox<String> colorList = new JComboBox<>();
JLabel sampleText = new JLabel("文本样例 This is a sample");
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// 添加控件
contentPane.add(colorList);
contentPane.add(sampleText);
colorList.addItem("红色");
colorList.addItem("蓝色");
colorList.addItem("绿色");
updateTextColor();
// 下拉列表的事件处理
colorList.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
updateTextColor();
}
});
}
// 更新 JLabel 的颜色的显示
private void updateTextColor(){
// 获取选中项的值
String item = (String)colorList.getSelectedItem();
// 根据选中的颜色,设置JLabel文字颜色
Color color = null;
if( item.equals( "红色"))
color = Color.RED;
else if(item.equals("蓝色"))
color = Color.BLUE;
else if(item.equals("绿色"))
color = Color.GREEN;
sampleText.setForeground(color);
}
}
彩色标签
package my;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MyFrame extends JFrame{
// JComboBox 是一个泛型的定义, 用于指定 Item 的数据类型
JComboBox<ListOption> colorList = new JComboBox<>();
JLabel sampleText = new JLabel("文本样例 This is a sample");
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// 添加控件
contentPane.add(colorList);
contentPane.add(sampleText);
colorList.addItem( new ListOption("红色", Color.RED));
colorList.addItem( new ListOption("绿色", Color.GREEN));
colorList.addItem( new ListOption("蓝色", Color.BLUE));
updateTextColor();
// 下拉列表的事件处理
colorList.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
updateTextColor();
}
});
}
// 更新 JLabel 的颜色的显示
private void updateTextColor(){
// 获取选中项的值,此时,这个选中项的类型 ListOption
ListOption item = (ListOption)colorList.getSelectedItem();
sampleText.setForeground(item.color);
}
// 专门定义一个定部类,表示列表项
private static class ListOption
{
public String text;
public Color color;
public ListOption(String text, Color color)
{
this.text = text;
this.color = color;
}
// 重写 toString(),用于列表项的显示
@Override
public String toString()
{
return "[" + this.text + "]" ;
}
}
}
彩色标签
package my;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class MyFrame extends JFrame
{
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JLabel a1 = new JLabel("1");
// 设置背景为不透明 (默认透明 )
a1.setOpaque(true);
// 设置背景色
a1.setBackground(Color.YELLOW);
// 设置最佳尺寸
a1.setPreferredSize(new Dimension(60,30));
// 设置水平对齐
a1.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a2 = new JLabel("2");
a2.setOpaque(true);
a2.setBackground(Color.GREEN);
a2.setPreferredSize(new Dimension(60,30));
a2.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a3 = new JLabel("3");
a3.setOpaque(true);
a3.setBackground(Color.LIGHT_GRAY);
a3.setPreferredSize(new Dimension(60,30));
a3.setHorizontalAlignment(SwingConstants.CENTER);
JLabel a4 = new JLabel("4");
a4.setOpaque(true);
a4.setBackground(Color.CYAN);
a4.setPreferredSize(new Dimension(60,30));
a4.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(a1);
contentPane.add(a2);
contentPane.add(a3);
contentPane.add(a4);
}
}
彩色标签(简化版)
package my;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
public class MyFrame extends JFrame
{
public MyFrame(String title)
{
super(title);
// 内容面板 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
JLabel a1 = new ColorfulLabel("1", Color.YELLOW);
JLabel a2 = new ColorfulLabel("2", Color.GREEN);
JLabel a3 = new ColorfulLabel("3", Color.LIGHT_GRAY);
JLabel a4 = new ColorfulLabel("4", Color.CYAN);
contentPane.add(a1);
contentPane.add(a2);
contentPane.add(a3);
contentPane.add(a4);
}
private static class ColorfulLabel extends JLabel
{
public ColorfulLabel(String text, Color bgColor)
{
super(text);
setOpaque(true);
setBackground(bgColor);
setPreferredSize(new Dimension(60,30));
setHorizontalAlignment(SwingConstants.CENTER);
}
}
}