Java第二次实验

组合框(JComboBox)的使用方法:
组合框(JComboBox)是文本框和列表的组合,可以在文本框中输入选项,也可以单击下拉按钮从显示的列表中进行选择。
组合框的常用构造方法:
JComboBox():建立一个没有选项的JComboBox对象。
JComboBox(JComboBoxModel aModel):用数据模型建立一个JComboBox对象。
JComboBox(Object[]items):利用数组对象建立一个JComboBox对象。

组合框的其他常用方法有以下几个:

  1. addItem(Object obj):向组合框加选项。
  2. getItemCount():获取组合框的条目总数。
  3. removeItem(Object ob):删除指定选项。
  4. removeItemAt(int index):删除指定索引的选项。
  5. insertItemAt(Object ob,int index):在指定的索引处插入选项。
  6. getSelectedIndex():获取所选项的索引值(从0开始)。
  7. getSelectedItem():获得所选项的内容。
  8. setEditable(boolean b):设为可编辑。组合框的默认状态是不可编辑的,需要调用本方法设定为可编辑,才能响应选择输入事件。

  在JComboBox对象上发生事件分为两类。一是用户选定项目,事件响应程序获取用户所选的项目。二是用户输入项目后按回车键,事件响应程序读取用户的输入。第一类事件的接口是ItemListener;第二类事件是输入事件,接口是ActionListener。

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class FontTest extends JFrame implements ActionListener {
public static void main(String[] args) {
JFrame frame=new FontTest();
frame.setSize(800, 200);
frame.setVisible(true);
}

public static Font font;
private JButton btnGo;
// 主类直接继承了 JFrame,实现了 ActionListener 接口

private static final long serialVersionUID = -2344998755780835481L;
// 获取当前的环境变量
private java.awt.GraphicsEnvironment env = java.awt.GraphicsEnvironment
.getLocalGraphicsEnvironment();
// 字体名字,风格,大小的下拉框
private JComboBox cbFontName, cbFontStyle, cbFontHeight;
// 文本编辑框
private JTextArea taEditor;

public FontTest() {
super("字体"); // 继承父类的构造函数
this.setSize(500, 280); // 设置窗口大小
this.setLocationRelativeTo(null); // 窗口屏幕居中
Image img = new ImageIcon("src/Icon/字体.jpg").getImage();
this.setIconImage(img);

Container container = this.getContentPane();

// 获取系统中所有可用字体的名字,并加入下拉框
String[] fontNames = env.getAvailableFontFamilyNames();
cbFontName = new JComboBox(fontNames);
// 将三种字体风格加入下拉框
String[] fontStyles = { "普通", "粗体", "斜体" };
cbFontStyle = new JComboBox(fontStyles);
// 将 12~21 字号加入下拉框
String[] fontHeights = new String[10];
for (int i = 12; i < 22; i++)
fontHeights[i - 12] = new String(Integer.toString(i));
cbFontHeight = new JComboBox(fontHeights);

// 创建执行按钮,并加入监听
btnGo = new JButton("应用字体");
btnGo.setActionCommand("Apply Font");
btnGo.addActionListener(this);

// 创建一个面板,把三个下拉框,按钮放进去,面板默认是 FlowLayout
JPanel paneTop = new JPanel();
paneTop.add(cbFontName);
paneTop.add(cbFontStyle);
paneTop.add(cbFontHeight);
paneTop.add(btnGo);

// 创建文本框,并放入滚动条
taEditor = new JTextArea();
taEditor.append("好好学习Java");
JScrollPane sp = new JScrollPane(taEditor);

// 将各组件加入窗口
container.add(paneTop, BorderLayout.PAGE_START);
container.add(sp, BorderLayout.CENTER);
}

public void actionPerformed1(ActionEvent event) {
if (event.getActionCommand().equals("Apply Font")) { // 判断是否来自按钮的动作
// 获取字体名字
String fontName = cbFontName.getSelectedItem().toString();
// 获取字体风格,默认是“普通”
int fontStyle;
switch (cbFontStyle.getSelectedIndex()) {
case 0:
fontStyle = Font.PLAIN;
break;
case 1:
fontStyle = Font.BOLD;
break;
case 2:
fontStyle = Font.ITALIC;
break;
default:
fontStyle = Font.PLAIN;
break;
}
// 获取字体大小
int fontHeight = Integer.parseInt(cbFontHeight.getSelectedItem()
.toString());
// 创建一个新字体
font = new Font(fontName, fontStyle, fontHeight);
// 文本框应用新字体
taEditor.setFont(font);
}
}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

}

}

原文地址:https://www.cnblogs.com/gentleman-g/p/5293216.html