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

  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/lcumin/p/5293007.html
Copyright © 2020-2023  润新知