JAVA 窗体选择图片显示在窗体中

本文介绍了一个使用Java Swing构建的图像查看器应用程序。该程序包括一个文件选择器,用于打开和显示图像,以及一个字体选择下拉菜单,允许用户更改显示在界面上方的文本字体。界面采用布局管理器进行组织,提供了直观的用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package day01;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class Java_3
{
   public static void main(String[] args)
   {
      JFrame frame = new ImageViewerFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //用户单击窗口的关闭按钮时程序执行的操作
      //*********Found**********
      frame.setVisible(true);  //让JFrame对象显示出来
   }
}

class ImageViewerFrame extends JFrame
{
   private JLabel label;
   private JLabel labelT;
   private JFileChooser chooser;
   private JComboBox faceCombo;
   private static final int DEFAULT_SIZE = 24;
   public static final int DEFAULT_WIDTH = 570;
   public static final int DEFAULT_HEIGHT = 400;

   public ImageViewerFrame()
   {
      setTitle("ImageViewer");
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
      label = new JLabel();                                                  //创建窗体
      Container contentPane = getContentPane();                              //创建容器
      contentPane.add(label,BorderLayout.CENTER);                            //设置窗体大小
      chooser = new JFileChooser();                                          //文件选择器
      chooser.setCurrentDirectory(new File("."));
      JMenuBar menuBar = new JMenuBar();                                     //菜单条
      setJMenuBar(menuBar);
      //*********Found**********
      JMenu menu = new JMenu("File");                                        //负责创建菜单
      menuBar.add(menu);                                                     //将菜单加入菜单条
      JMenuItem openItem = new JMenuItem("Open");                            //创建子菜单
      //*********Found**********
      menu.add(openItem);                                                    //将子菜单加入菜单条
      openItem.addActionListener(new ActionListener()                        //监听子菜单的点击事件
         {  
            public void actionPerformed(ActionEvent evt)
            {  
               int r = chooser.showOpenDialog(null);
               if(r == JFileChooser.APPROVE_OPTION)
               {  
          //*********Found**********
                  String name = chooser.getSelectedFile().getPath();         //返回选中的文件名
                  label.setIcon(new ImageIcon(name));                        //将返回选中的文件名显示在窗体中
               }
            }
         });
      labelT = new JLabel("红军不怕远征难");                                  //创建一个标签对象
      labelT.setFont(new Font("隶书", Font.PLAIN, DEFAULT_SIZE));
      contentPane.add(labelT, BorderLayout.NORTH );
      faceCombo = new JComboBox();                                           //创建一个下拉组件对象
      faceCombo.setEditable(true);
      faceCombo.addItem("隶书");
      faceCombo.addItem("华文新魏");
      faceCombo.addItem("华文行楷");
      faceCombo.addItem("华文隶书");
      faceCombo.addActionListener(new
         ActionListener()
         {  
            public void actionPerformed(ActionEvent event)
            {
       //*********Found**********
               labelT.setFont(new Font((String)faceCombo.getSelectedItem(),
                  Font.PLAIN, DEFAULT_SIZE));
            }
         });
      JPanel comboPanel = new JPanel();                                     //面板容器
      comboPanel.add(faceCombo);                                            //将标签放入面板容器中
      contentPane.add(comboPanel, BorderLayout.SOUTH);                      //将面板容器加入窗体中
   }
}

标题运行结果如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值