精华内容
下载资源
问答
  • Java页面布局设计计算器

    千次阅读 2017-11-09 10:46:40
    (一)源码演示package ... import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.Action

    (一)源码演示

    package Jisuanqi.cn;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    @SuppressWarnings("serial")
    class CalculatorPanel extends JPanel {
        private JPanel jp; // 中间的面板
        private double result; // 计算结果
        private boolean start; // 用于判断是否是首次输入,true首次,false不是首次
        private boolean flag; // 用于判断是否清空显示区域的值,true需要,false不需要
        private String lastCommand; // 用于保存运算符
        JTextField display; // 显示区域
    
        public CalculatorPanel() {
            // 初始化各项值
            result = 0;
            start = true;
            flag = false;
            lastCommand = "=";
    
            // 设置CalculatorPanel这个面板的布局为框架布局
            setLayout(new BorderLayout());
            // 这个按钮用来显示值的区域
            display = new JTextField("0.0");
            //将文本内容设置在文本框的左边
            display.setHorizontalAlignment(display.RIGHT);
            display.setEnabled(false);// 按钮样式设置为禁用样式
    
            // 用来初始化,清除用的
            JButton clear = new JButton("clear");
            clear.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    // 作初始化的操作
                    result = 0;
                    start = true;
                    flag = false;
                    lastCommand = "=";
                    display.setText("0.0");
                }
            });
    
            jp = new JPanel();
            // 将此面板布局设置为网格布局,4行4列
            jp.setLayout(new GridLayout(4, 4));
    
            // 实例化监听器对象
            NumberAction na = new NumberAction();
            CommandAction ca = new CommandAction();
    
            makeButton("7", na);
            makeButton("8", na);
            makeButton("9", na);
            makeButton("/", ca);
    
            makeButton("4", na);
            makeButton("5", na);
            makeButton("6", na);
            makeButton("*", ca);
    
            makeButton("1", na);
            makeButton("2", na);
            makeButton("3", na);
            makeButton("-", ca);
    
            makeButton("0", na);
            makeButton(".", na);
            makeButton("+", ca);
            makeButton("=", ca);
    
            // 将面板,两个按键加入到我的面板,实现计算器的界面
            add(display, BorderLayout.NORTH);
            add(jp, BorderLayout.CENTER);
            add(clear, BorderLayout.SOUTH);
    
        }
    
        private void makeButton(String buttonName, ActionListener al) {
            JButton jb = new JButton(buttonName);
            jp.add(jb);
            jb.addActionListener(al);
        }
    
        // 数字监听器
        private class NumberAction implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent e) {
                JButton jb = (JButton) e.getSource(); // 获取事件源对象
                String input = jb.getText(); // 获取事件源对象上的标签
                if (start) { // 首次输入
                    // 一上就".",就什么也不做
                    if (input.equals(".")) {
                        return;
                    }
                    // 如果是"0.0"的话,就清空
                    if (display.getText().equals("0.0")) {
                        display.setText("");
                    }
                    start = false;// 改变是否首次输入的标记值
                } else {
                    // 判断显示区域的值里面是否已经有".",如果有,输入的又是".",就什么都不做
                    if (display.getText().indexOf(".") != -1) {
                        if (input.equals(".")) {
                            return;
                        }
                    }
    
                    // 判断显示区域的值里面只有"-",输入的又是".",就什么都不做
                    if (display.getText().equals("-")) {
                        if (input.equals(".")) {
                            return;
                        }
                    }
    
                    // 判断显示区域的值如果是"0",输入的不是".",就什么也不做
                    if (display.getText().equals("0")) {
                        if (!input.equals(".")) {
                            return;
                        }
                    }
                }
                // 如果我点击了运算符以后,再输入数字的话,就要清空显示区域的值
                if (flag) {
                    display.setText("");
                    flag = false;// 还原初始值,不需要清空
                }
                display.setText(display.getText() + input);// 设置显示区域的值
            }
        }
    
        // 运算符监听器
        private class CommandAction implements ActionListener {
            @Override
            public void actionPerformed(ActionEvent e) {
                JButton jb = (JButton) e.getSource(); // 获取事件源对象
                String inputCommand = jb.getText(); // 获取事件源对象上的标签
    
                if (start) {// 首次输入
                    // 一上就是"-"
                    if (inputCommand.equals("-")) {
                        display.setText("-");// 显示区域的内容设置为"-"
                        start = false;// 改变首次输入的标记
                    }
                } else {
    
                    if (!flag) {// 如果flag=false不需要清空显示区的值,就调用方法计算
                        calculate(Double.parseDouble(display.getText()));// 保存显示区域的值,并计算
                    }
                    // 保存你点击的运算符
                    lastCommand = inputCommand;
                    flag = true;// 因为我这里已经输入过运算符,
                }
            }
        }
    
        // 计算用的方法
        private void calculate(double x) { 
            if (lastCommand.equals("+")) {
                result += x;
            } else if (lastCommand.equals("-")) {
                result -= x;
            } else if (lastCommand.equals("*")) {
                result *= x;
            } else if (lastCommand.equals("/")) {
                result /= x;
            } else if (lastCommand.equals("=")) {
                result = x;
            }
            display.setText("" + result);
        }
    }
    
    class MyFrameUitl {
        public static void init(JFrame jFrame, Dimension frameSize, String title,
            String iconFileName, boolean resizable) {
            // 系统工具包,可以读取系统信息
            Toolkit tk = Toolkit.getDefaultToolkit(); 
            // 获取屏幕大小
            Dimension screenSize = tk.getScreenSize(); 
            // 获取宽高
            int screenWidth = screenSize.width;
            int screenHeight = screenSize.height;
    
            // 找中心点
            int centerX = screenWidth / 2;
            int centerY = screenHeight / 2;
    
            // 解析窗体大小
            int frameWidth = frameSize.width;
            int frameHeight = frameSize.height;
    
            // 设置窗体位置
            jFrame.setBounds(centerX - frameWidth / 2, centerY - frameHeight / 2,
                    frameWidth, frameHeight);
            jFrame.setTitle(title);// 设置标题
            if (iconFileName != null) {
                jFrame.setIconImage(tk.getImage(iconFileName));// 设置图标
            }
    
            // 设置皮肤com.sun.java.swing.plaf.windows.WindowsLookAndFeel
            /**/
            try {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                SwingUtilities.updateComponentTreeUI(jFrame);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
    
            jFrame.setResizable(resizable);// 设置窗体是否可以改变大小
            jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置程序关闭动作
            jFrame.setVisible(true);// 显示窗体
    
        }
    }
    
    class CalculatorFrame extends JFrame {
        public CalculatorFrame() {
            add(new CalculatorPanel());
            MyFrameUitl.init(this, new Dimension(400, 300), "简易计算器", null,
                    false);
         // 让组件按原始大小显示,并且窗体的大小刚好能够容纳所有的组件
                  this.pack(); 
        }
    }
    
    public class Caculator3 {
        public static void main(String[] args) {
            new CalculatorFrame();
        }
    } 

    结果:这里写图片描述

    展开全文
  • ②在Ability代码中直接通过Java创建布局 这两种方式创建出的布局没有本质差别,但是XML方式较为方便简单。 在XML文件中布局 与HTML+CSS的前端布局类似,通过使用不同类型的标签进行布局,而样式也通过属性来设置。...

    鸿蒙UI中,提供了两种编写布局的方式:
    ①在XML中声明UI布局
    ②在Ability代码中直接通过Java创建布局

    这两种方式创建出的布局没有本质差别,但是XML方式较为方便简单。


    在XML文件中布局

    在这里插入图片描述
    与HTML+CSS的前端布局类似,通过使用不同类型的标签进行布局,而样式也通过属性来设置。具体的标签属性等可以在开发中慢慢熟悉。

    在这里插入图片描述


    创建Ability

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

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


    在Ability代码中直接通过Java创建布局
    (这里我们在新创建的这个SecondAbility中进行布局)

    在这里插入图片描述

    展开全文
  • Java图形页面布局

    2019-12-03 21:33:51
    一.常用布局 FlowLayout 流式布局 最常用的一种布局 BoarderLayout 将各种元素放在...在Java图形页面的编写过程中,组件的有序排放影响了使用者的体验和界面的美观性,所以善用布局是极为重要的。 FlowLayout是一种...

    一.常用布局

    • FlowLayout 流式布局 最常用的一种布局
    • BoarderLayout 将各种元素放在不同的位置
    • BoxLayout 允许垂直或水平布置多个组件的布局管理器。
    • GridLayout 类似于网格一样 自定义行列的个数 然后自动add所加的内容

    在Java图形页面的编写过程中,组件的有序排放影响了使用者的体验和界面的美观性,所以善用布局是极为重要的。
    FlowLayout是一种常见的布局,该布局是通过组件从左到右依次排序的,直到这行放不下,再到下一行去.
    BoarderLayout 这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH 、SOUTH 、EAST 、WEST 、CENTER。
    BoxLayout 这些组件将不包装,因此举例来说,垂直排列的组件在重新调整框架的大小时仍然被垂直排列。
    GridLayout 这是一种较为整齐的布局,再使用时,直接再其中输入几行几列,就会自动的划分区域,便于组件的调用。
    二.同一页面的多次布局
    使用 BoarderLayout 在其中添加两个Panel,然后分别改变两个Panel的布局,这样就可以让,一个界面出现两个布局。

    展开全文
  • java界面布局—日历

    2015-12-03 19:30:28
    使用GridLayout布局的简单日历窗口java小程序
  • java 布局练习

    2020-06-14 13:23:56
    实现如下图所示的布局 思路:将整个窗口拆分为两大块,上面面板和下面面板,其中上面的面板包括两个面板,一个是大的面板p1,p1里面有p2面板。p1面板采用BorderLayout布局,p2为GridLayout布局。同理进行下面面板的...

    实现如下图所示的布局
    在这里插入图片描述
    思路:将整个窗口拆分为两大块,上面面板和下面面板,其中上面的面板包括两个面板,一个是大的面板p1,p1里面有p2面板。p1面板采用BorderLayout布局,p2为GridLayout布局。同理进行下面面板的布局。

    package bili_01;
    
    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.Frame;
    import java.awt.GridLayout;
    import java.awt.Panel;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    public class Test {
    	public static void main(String[] args) {
    		Frame frame = new Frame("练习布局");
    		//设置窗口大小
    		frame.setSize(600, 600);
    		// 总的。分别为2行1列,即上面和下面
    		frame.setLayout(new GridLayout(2, 1));
    		
    		// 上面的总面板
    		Panel p1 = new Panel(new BorderLayout());
    		// 上面中间的面板
    		Panel p2 = new Panel(new GridLayout(2, 1));
    		// 上面左边和右边的按钮
    		p1.add(new Button("p1-west"), BorderLayout.WEST);
    		p1.add(new Button("p1-east"), BorderLayout.EAST);
    		// 上面中间的上下按钮
    		p2.add(new Button("p2-上"));
    		p2.add(new Button("p2-下"));
    		// 将p2加入到p1总面板的中间
    		p1.add(p2, BorderLayout.CENTER);
    		//窗口添加p1面板
    		frame.add(p1);
    
    		// 下面的总面板
    		Panel p3 = new Panel(new BorderLayout());
    		// 下面总面板的中间面板
    		Panel p4 = new Panel(new GridLayout(2,2));
    		// 下面的左右按钮
    		p3.add(new Button("p3-west"), BorderLayout.WEST);
    		p3.add(new Button("p3-east"), BorderLayout.EAST);
    		// 下面中间的四个按钮
    		p4.add(new Button("p4-1"));
    		p4.add(new Button("p4-2"));
    		p4.add(new Button("p4-3"));
    		p4.add(new Button("p4-4"));
    		//将p4加到p3的中间
    		p3.add(p4,BorderLayout.CENTER);
    		//窗口添加p3面板
    		frame.add(p3);
    		
    		//显示
    		frame.setVisible(true);
    		
    		//监听关闭事件
    		frame.addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				System.exit(0);
    			}
    		});
    	}
    }
    
    展开全文
  • Java Swing布局管理器

    万次阅读 多人点赞 2019-03-05 01:33:35
    引言 在使用 Swing 向容器...为了加快开发速度,Java 提供了一些布局管理器,它们可以将组件进行统一管理,这样开发人员就不需要考虑组件是否会重叠等问题。本文绍 Swing 提供的 6 种布局类型,所有布局都实现 La...
  • Java界面布局一般步骤

    2014-12-08 19:32:49
    1.new一个对象出来 如: ...//取消默认布局.  5.setResizable(true);//是否可以鼠标拖拉窗口尺寸 6.讲组件添加到Frame中 fm.add(pn); 7.设置可见 fm.setVisible(true);
  • java布局总结

    千次阅读 2016-05-16 20:22:14
    java布局是用来布置容器的位置,主要的布局有BorderLayout,GridLayout,CardLayout,BoxLayout等等  1.BorderLayout是一种边框布局,把容器划分为东西南北中5部分,是JFrame窗框默认的布局。  例如: Jpanel.add...
  • java Swing布局管理之BoxLayout布局

    万次阅读 2016-05-08 16:26:48
    属性确定的文本行在页面中的流向来放置组件。 X_AXIS  :指定组件应该从左到右放置。 Y_AXIS  :指定组件应该从上到下放置。 2.常用方法 getAxis ()  :返回用于布局组件的轴。 ...
  • java GUI布局与设置背景

    千次阅读 2016-07-17 10:34:42
    一、实现界面步骤 二、组件布局类 每种布局的用法及展示 三、添加背景
  • Android程序不仅可以像《【Android...xml与Java代码布局应该混合存在,正如在网页编程中,html布局与javascript动态控制布局应该是共存的,这里用一个小例子来说明如何用Java代码在Android中进行布局。同时,为按钮添加
  • java 中的布局

    千次阅读 2018-06-26 09:26:32
    Java布局 1、布局对象 LinearLayout layout = new LinearLayout(this); // 设置方向 layout.setOrientation(LinearLayout.VERTICAL); 2、创建子视图,需要使用布局布局参数来设置宽高边距之类之类的属性 ...
  • java中swing页面布局切换panel

    千次阅读 2019-07-02 11:30:39
    首先,在util包下建立一个文件 MySystemUtil.java 用以储存我们在设计面板时需要使用的方法和属性。在其中编写一个切换panel的方法 /** * 切换面板中的内容 * @param panel * @param switchPanel */ ...
  • 本人采用了GridBagLayout布局。先放上效果图 当鼠标放到file和about时,分别显示 点击exit执行退出操作 点击update和information分别会弹出一个提示框 账号和密码有限制位数和形式,点击checkinfo会进行检查,...
  • java布局之BoxLayout

    万次阅读 2014-01-25 21:21:22
    package caculatePos;... * BoxLayoutDemo.java requires no other files. */ import java.awt.Component; import java.awt.Container; import javax.swing.BoxLayout; import javax.swing.JButton; import
  • java程序的JFrame的边界页面布局 **BorderLayout(); //加粗样式import javax.swing.*; public class WindowBoxLayout extends JFrame { Box baseBox,boxV1,boxV2; public WindowBoxLayout() { setLayout(new ...
  • 如何把eclipse编写好的java web JSP页面布局到tomcat服务器eclipse编写好的java web JSP页面布局到tomcat服务器的方法1.JavaWeb之tomcat安装、配置与使用(一)https://www.cnblogs.com/zxtceq/p/7873929.html2.启动...
  • .box{ display: inline-flex; }
  • HarmonyOS布局简介简介线性布局相对布局Java ui声明式布局总结 简介 因为笔者是从事Android开发的,所以这里大多都带入Android的布局概念,对Android不熟悉的还望谅解一下。 目前鸿蒙的布局也主要分为线性布局和相对...
  • Java界面常用布局管理器

    万次阅读 2016-09-18 19:35:21
    这是第一次在博客园里面写博客,是有关JAVA页面设计当中的布局管理器,可能大多数人会选择使用 NetBeans 或者是Eclipse 的组件来实现可视化拖拽组件来达到自己页面设计布局,因为是第一次做界面,总结一下,以供...
  • import java.awt.*; import java.awt.event.*; //事件类 import javax.swing.*; //包含JFrame public class CloseComputer extends JFrame implements ActionListener{  //创建成员变量  
  • java swing界面布局

    千次阅读 2017-03-18 13:15:06
    import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame;...import javax.swing.WindowConstants;... * 1:流(FlowLayout)布局管理器是布局管理
  • 今天遇到一个问题,讲讲java布局和xml布局的优缺点。 我想...
  • JFrame q =new JFrame(); Container a=q.getContentPane(); setLayout(new BorderLayout()); final JProgressBar progressBar = new JProgressBar(); // 创建进度条 // 将进度条放置在窗体合适位置 ...
  • HTML 页面源代码布局介绍 此介绍以google首页源代码截图为例: 从上到下依次介绍: <!DOCTYPE html> 此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。  XHTML规范:必须小写,有开始结束标签,属性也用双...
  • 离开Java布局管理器

    千次阅读 2006-08-28 16:46:00
    离开Java布局管理器 转载自:www.csdn.net Java语言中提供的布局管理器种类有:边界式布局、卡片式布局、流式布局和网格式布局等,各有不同的特点
  •   这篇博客记录一下使用Eclipse进行Java编程中遇到的两个小问题~~~~ 修改Eclipse的背景颜色   由于Eclipse安装完后的默认背景颜色是白色,小编非常不习惯,所以想更换一下背景颜色,毕竟程序员都是黑夜精灵~翻找...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,898
精华内容 45,959
关键字:

java页面布局

java 订阅