• 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
    
    }
    
    }

  • 相关阅读:
    SharePoint REST API
    线程同步
    win32
    win32
    win32
    win32
    win32
    win32
    win32
    解决CentOS被wbew挖矿程序入侵的方法
  • 原文地址:https://www.cnblogs.com/Mrsli/p/5293023.html
Copyright © 2020-2023  润新知