Java基础之视图式用户交互(GUI)

当提到Java时,让我一天天的待在教室里学习的就是当学习到GUI的时候,因为终于不只在控制台活动啦,终于可以用户交互啦,话不多说,直接开始。

先上图


如上图,是一些常用的组件,还有一个重要的组成部分为布局,我的习惯是先布局后加组件。

给大家介绍一些常用的,JFrame这个组件叫做窗体所有的交互都从这开始,一般在上边放置布局或者面板,JPanel叫做面板主要是在上边放置各种组件包括布局。

下面用两个小例子(阅读器)给大家介绍一下GUI

先上图


上代码

import javax.swing.*;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.*;
import java.util.ArrayList;

/**
 * Created by lenovo on 2017/10/18.
 */
public class GUITest {
    //记录当前页
    private static int nowPage = 1;
    private static double WIDTH = 0;
    private static double HEIGHT = 0;
    private static String article = "";
    //每页字数为1428
    private static int pageSize = 1428;
    //获得页数
    private static int maxPageNumber = 0;
    //文字显示
    private static JLabel right = null;
    //打开的窗体的集合
    private static java.util.List<JDialog> jDialogs = null;

    public static void main(String args[]) {
        jDialogs = new ArrayList<>();
        //获得屏幕的宽高
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        WIDTH = toolkit.getScreenSize().getWidth();
        HEIGHT = toolkit.getScreenSize().getHeight();
        JFrame jFrame = new JFrame("GUI测试");
        JMenuBar jMenuBar = new JMenuBar();
        JMenu jMenu1 = new JMenu("目录选取文件");
        jMenu1.addMenuListener(new MenuListener() {
            @Override
            public void menuSelected(MenuEvent e) {
                File[] files = getRootFir();
                showDialog(files);
            }

            @Override
            public void menuDeselected(MenuEvent e) {

            }

            @Override
            public void menuCanceled(MenuEvent e) {

            }
        });
        JMenu jMenu2 = new JMenu("输入目录选取文件");
        jMenu2.addMenuListener(new MenuListener() {
            @Override
            public void menuSelected(MenuEvent e) {
                JDialog jDialog = new JDialog();
                //面板容器
                Panel panel = new Panel();
                panel.setLayout(new FlowLayout());
                //存放路径的文本框
                JTextArea jtext = new JTextArea(1, 50);
                panel.add(jtext);
                //搜索
                JButton jBtn = new JButton("打开");
                jBtn.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        //开始阅读
                        try {
                            File file = new File(jtext.getText());
                            String fileName = file.getName();
                            String fileType = fileName.substring(fileName.indexOf('.') + 1, fileName.length());
                            if (fileType.equals("txt")) {
                                article = getText(fil
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值