精华内容
下载资源
问答
  • 1. 概述GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高...因此,例如,如果指定了三行和两列,在布局中添加了九个组件...

    1. 概述

    GridLayout,网格布局管理器。它以矩形网格形式对容器的组件进行布置,把容器按行列分成大小相等的矩形网格,一个网格中放置一个组件,组件宽高自动撑满网格。

    以行数和总数优先: 通过构造方法或 setRows 和 setColumns 方法将行数和列数都设置为非零值时,指定的列数将被忽略。列数通过指定的行数和布局中的组件总数来确定。因此,例如,如果指定了三行和两列,在布局中添加了九个组件,则它们将显示为三行三列。仅当将行数设置为零时,指定列数才对布局有效。

    GridLayout构造方法:

    // 默认构造, 每个组件占据一行一列

    GridLayout()

    // 指定 行数 和 列数 的网格布局

    GridLayout(int rows, int cols)

    // 指定 行数 和 列数 的网格布局, 并指定 水平 和 竖直 网格间隙

    GridLayout(int rows, int cols, int hgap, int vgap)

    2. 代码演示

    package com.xiets.swing;

    import javax.swing.*;

    import java.awt.*;

    public class Main {

    public static void main(String[] args) {

    JFrame jf = new JFrame("测试窗口");

    jf.setSize(200, 250);

    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    jf.setLocationRelativeTo(null);

    // 创建 3 行 3 列 的网格布局

    GridLayout layout = new GridLayout(3, 3);

    // 设置 水平 和 竖直 间隙

    // layout.setHgap(10);

    // layout.setVgap(10);

    JPanel panel = new JPanel(layout);

    JButton btn01 = new JButton("按钮01");

    JButton btn02 = new JButton("按钮02");

    JButton btn03 = new JButton("按钮03");

    JButton btn04 = new JButton("按钮04");

    JButton btn05 = new JButton("按钮05");

    JButton btn06 = new JButton("按钮06");

    JButton btn07 = new JButton("按钮07");

    JButton btn08 = new JButton("按钮08");

    panel.add(btn01);

    panel.add(btn02);

    panel.add(btn03);

    panel.add(btn04);

    panel.add(btn05);

    panel.add(btn06);

    panel.add(btn07);

    panel.add(btn08);

    jf.setContentPane(panel);

    jf.setVisible(true);

    }

    }

    结果展示:

    b41ddda1c5399535efc864ef25b1b1b9.png

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    时间: 2019-12-01

    展开全文
  • 我已经创建了一个网格布局,并且我使用JPanel在网格输入按钮和文本,但是如果我的文本很长,一切似乎都会改变大小。有人可以帮助我如何防止这种情况发生?这是我的代码:package JFrameTester;import java.awt.*;...

    我有以下程序,我遇到了一件事情的麻烦。我已经创建了一个网格布局,并且我使用JPanel在网格中输入按钮和文本,但是如果我的文本很长,一切似乎都会改变大小。有人可以帮助我如何防止这种情况发生?

    这是我的代码:

    package JFrameTester;

    import java.awt.*;

    import javax.swing.*;

    public class JFrameTester {

    public JPanel createContentPane(){

    JPanel panel = new JPanel();

    JButton button1,button2,button3,button4;

    JPanel mainPanel = new JPanel(new GridLayout(2, 0, 40, 10));

    //JPanel red = createSquareJPanel(Color.red, 50);

    button1 = new JButton ("button1");

    button2 = new JButton ("button2");

    button3 = new JButton ("button3");

    button4 = new JButton ("button4");

    Label one = new Label("Rohihtjthjhtjghjghmgfjgjghjghj");

    //add(button1);

    mainPanel.add(button1);

    mainPanel.add(one);

    mainPanel.add(button2);

    mainPanel.add(button3);

    mainPanel.add(button4);

    panel.add(mainPanel);

    panel.setOpaque(true);

    return panel;

    }

    public static void main(String[] args) {

    JFrame frame = new JFrame("GridLayout");

    JFrameTester Display = new JFrameTester();

    frame.setContentPane(Display.createContentPane());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.pack();

    frame.setVisible(true);

    }

    }

    2011-11-30

    Led

    展开全文
  • panels指令利用Bootstrap 4和在网格布局中创建内容面板。 link-button伪指令创建一个可单击的按钮,链接到URL或引用,也可用于使整个面板可单击。 dropdown指令创建可切换的内容。 tabbed伪指令创建选项卡式内容...
  • QT界面布局之QGridLayout网格布局

    千次阅读 2018-10-13 20:07:14
    但是对于动态界面来说(例如,用户点击某个按钮后,要在界面中添加一个新控件),通过拖拽设计的ui就力不从心了。 今天记录下如何用代码来添加布局,并把各个空间放置到这个布局中去。 在ui设计师拖拽空间的界面,...

    之前一直用拖控件的方式来做ui界面,最大的心得就是,要充分利用“布局类型”和“弹簧”。

    但是对于动态界面来说(例如,用户点击某个按钮后,要在界面中添加一个新控件),通过拖拽设计的ui就力不从心了。

    今天记录下如何用代码来添加布局,并把各个空间放置到这个布局中去。

    在ui设计师拖拽空间的界面,我们可以看到共有4种布局类型:

    用法都是差不多的,这里以网格类型为例,QGridLayout。

    布局类的代码可以这样,在ui中拖入一些控件并设置布局,然后读读QT自动生成的这个函数就能学会了:

    1、设置布局所在的控件

    布局必须被某个widget接管才能有效(也即给某个widget设置布局),一般我们会给容器类的控件设置布局,例如:窗口QDialog、组QGroupBox、框QFrame等等。

    也即每个布局必须依附于某个widget才行,有两种方法:
    (1)构造时直接设置:代码为QGridLayout(QWidget *parent),
    (2)例如:frameGridLayout.setParent(ui->checkBoxFrame->layout());注意:布局类的parent必须也是布局类,而不能是QWidget。

    (3)直接给QWidget设置布局:
    QGridLayout my_GridLayout;
    ui->groupBox_2->setLayout(&my_GridLayout);

    2、向布局中添加控件和弹簧

    添加控件的3个重载函数为:

    (1)void QLayout::addWidget(QWidget *wwidget)
    (2)void QGridLayout::addWidget(QWidget *widget, int row, int column, Qt::Alignment alignment = Qt::Alignment())
    (3)void QGridLayout::addWidget(QWidget *widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = Qt::Alignment())

    形参解释:widget要放置的控件指针;row/column将控件放在第几行几列中;fromRow从第几行开始放;rowSpan总共要占几行;alignment为控件在网格中的布局方式,有:靠上/下/左/右、居中、自适应文字等方式。

    添加弹簧和添加控件类似,只不过用的是addItem,自行查阅帮助即可

     

     

     

    展开全文
  • 网格布局像电子数据表一样,按行列排列所有的组件。... 在网格布局对象的构造器,需要指定行数和列数:  panel.setLayout(new CridLayout(4,4)); 添加组件,从第一行的第一列开始,然后是第一行

            网格布局像电子数据表一样,按行列排列所有的组件。不过,它的每个单元大小都是一样的。计算器程序就使用了网格布局来排列计算器按钮。当缩放窗口时,计算器按钮将随之变大或变小,但所有的按钮尺寸始终保持一致。

            在网格布局对象的构造器中,需要指定行数和列数: 

    panel.setLayout(new CridLayout(4,4));

    添加组件,从第一行的第一列开始,然后是第一行的第二列,以此类推。

             panel.add(new JButton(1)); 

             panel.add(new JButton( 2 ));

    下面是一个计算器的代码:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    /**
     * Created by IBM on 2017/9/15.
     */
    public class CalculatorPanel extends JFrame {
        private JButton display;
        private JPanel panel;
        private double result;
        private String lastCommaand;
        private boolean start;
        public static void main(String[]args){
            CalculatorPanel buttonFrame=new CalculatorPanel();
            buttonFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            buttonFrame.setVisible(true);
        }
        public CalculatorPanel(){
            setLayout(new BorderLayout());
            result=0;
            lastCommaand="=";
            start=true;
            //add the display
            display=new JButton("0");
            display.setEnabled(false);//按钮作为显示计算结果的控件
            add(display,BorderLayout.NORTH);
            ActionListener insert=new InsertAction();
            ActionListener command=new CommandAction();

            panel=new JPanel();
            panel.setLayout(new GridLayout(4,4));
            addButton("7",insert);
            addButton("8",insert);
            addButton("8",insert);
            addButton("/",command);

            addButton("4",insert);
            addButton("5",insert);
            addButton("6",insert);
            addButton("*",command);

            addButton("1",insert);
            addButton("2",insert);
            addButton("3",insert);
            addButton("-",command);

            addButton("0",insert);
            addButton(".",insert);
            addButton("=",command);
            addButton("+",command);
            add(panel,BorderLayout.CENTER
            );
        }
        /**
         *
         * @param label
         * @param listener
         */
        private void addButton(String label,ActionListener listener){
            JButton button=new JButton(label);
            button.addActionListener(listener);
            panel.add(button);
        }
        private class InsertAction implements ActionListener{
            public void actionPerformed(ActionEvent event){
                String input=event.getActionCommand();
                if(start){
                    display.setText("");
                    start=false;
                }
                display.setText(display.getText()+input);
            }
        }
        private class CommandAction implements ActionListener{
            public void actionPerformed(ActionEvent event){
                String command=event.getActionCommand();
                if(start){
                    if(command.equals("-")){
                        //display.setText(command);
                        start=false;
                    }else lastCommaand=command;
                }
                else {
                    calculate(Double.parseDouble(display.getText()));
                    lastCommaand=command;
                    start=true;
                }
            }
        }
        public void calculate(double x){
            if(lastCommaand.equals("+"))result+=x;
            else if(lastCommaand.equals("-"))result-=x;
            else if(lastCommaand.equals("*"))result*=x;
            else if(lastCommaand.equals("/"))result/=x;
            else if(lastCommaand.equals("="))result=x;
            display.setText(""+result);
        }
    }

    运行结果:

    展开全文
  • 4.在构造方法中添加组件 5.设置窗体属性 6.显示窗体 7.在主函数中创建对象 所有布局管理器都可以添加任意组件 (滚动条...在这里拿按钮举例子) package demo; import java.awt.*; import javax.swing.*; ...
  • 说明这种类型的布局器主要用来做表单的。2.案例(1)效果 点击save按钮时,可以校验表单的信息,如果为空,将为空的提示信息写到input标签上。点击clear按钮时,可以清空所有输入框的内容。(2)代码#include "widget....
  • #Android网格布局设置可以选中其中一个** Android GridView列表按钮要控制点击的时候选中其中一个, 如果使用系统的属性和方法试了几个确实不好实现,后面动了一点脑筋,就实现了。 效果: 其实代码实现并不难...
  • 向盒状容器添加盒状容器。这当然是创建多行多列控件布局的一个好方法。还有一个方法就是使用网格容器(GtkGrid)控件。网格容器是一种能容纳多行多列控件且简单易用的容器,它提供了坐标方式表示控件所要摆放的...
  • CSS网格布局生成器 建立复杂CSS网格布局的最快,最简单方法 路线图 不久 自动生成的网格轨道(又名隐式网格轨道) 列和行的repeat()表示法 列和行的fit-content()表示法 出口代码 将HTML导出为JSX 将CSS...
  • 单一价格成分 :movie_camera: 预览网站→ 对于这个项目,我使用了: ... 仅适用于屏幕阅读器用户的不可见内容;... 因此,我可以添加ARIA角色列表和listitem来恢复语义,这有助于在VoiceOver标识项目列表并返回列
  • 每个rown是标签和文本字段,第二个面板是单个按钮,第三个面板是网格布局(n,2) . 我将在一分钟内到达底部面板也是一个按钮n是动态变化的数字 . 第三个面板包含一个文本字段,然后是一个右侧有2个按钮的面板 . 我...
  • java初学者,最近写了两个界面,想在一个界面通过按钮跳入另一个界面,找了一些方法都是把两个界面直接写在了一个类,最终发现了一个解决的方法。直接上代码了,第一个界面使用的分层网格,第二个界面使用的盒式...
  • java GUI 布局

    2012-01-31 22:59:58
    容器有add跟remove方法来在容器中添加或者删除控件(如按钮JButton,文本框JTextField等)容器的布局管理使用setLayout方法来设置布局分3种布局方式:FlowLayout--从左至右依次摆放控件,一行摆满换行继续GridLayout--...
  • 界面布局:使用网格布局,事先定义按钮,并设置在布局中的位置(适合少量按钮组件自定义情况,手法非正规)(由后台获取添加按钮情况,依照该数据添加到GradView里)<?xml version="1.0" encoding=...
  • 补3

    2021-01-12 18:06:03
    并在第一个布局中添加三个图片控件,放入图片第二个布局中添加三个按钮和一个编辑框在第三个布局中添加三个线性布局再分别在三个嵌套的布局中添加按钮这里是全部代码最后显示结果计算器界面(网格布局方法)显示结果...
  • 真正的拖放布局创建(添加,移动,和创建行和)。 拖放模板。 历史记录快照和撤消/重做。 适用于手机,平板电脑和台式机屏幕尺寸的设备预览。 支持特定于设备的设置。 支持内置和第三方小部件。 支持WordPress...
  • pyQt5 计算器

    2019-09-30 22:25:01
    添加网格布局中按钮添加功能 解决问题: 除零 报错 等号后 直接按数字问题 ''' import sys from PyQt5.QtWidgets import QWidget, QApplication, QLineEdit, QPushButton...
  • java大作业是做一个计算器,通过实验报告要求来看,并不难。 在实现的过程,我的思路就是...于是我添加文本框到一个面板,又把一系列按钮添加到一个面板,都分别用了网格布局。最后又做一个两行一列的网格布局。如...
  • 在android studio做一个简单计算器APP

    千次阅读 2019-03-17 19:08:55
    在这里,我是用的是课本例2-9的网格布局,在界面设计区域设置一个6行4列的网格布局,第1行为显示数据的文本标签,第2行为清除数据的按钮,第3~6行均划分为4列,共安排16个按钮,分别代表了数字...
  • 实验要求:编写一个模拟计算器的应用程序,使用面板和网格布局添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, 一个等号按钮,一个清除按钮,一个求平方根按钮,一个退格按钮, 要求将计算公式和结果...
  • 其中绝对布局中设置按钮不随窗体大小改变而改变,通过学习在窗体里插入图片让窗体更漂亮,美观更加吸引人的眼球,滚动条让容器中的 文本域查看更加便利,设置了六种按钮,中有其中有给按钮设置不可用,背景色,不...
  • 碘 Minecraft mod-服务器插件对,用于添加自定义GUI和叠加层。 没有更多的清单和聊天菜单! 这是的后继者。 该项目目前正在大力开发。... 可单击的按钮,滑块,复选框,线性和网格布局等。 可以制作成小
  • // 用网格布局管理器,5行,1列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素 calmsPanel.setLayout(new GridLayout(5, 1, 3, 3)); for (int i = 0; i ; i++) { m[i] = new JButton(M[i])...
  • GridLayout是网格布局!实例化一个网格布局对象时可以指定网格数量 panel必须添加到某个容器才能显示! 事件是描述发生了什么的对象,这些对象是AWT提供好的,例如左键击单击会产生一个ActionEvent对象 事件源是...
  • java大作业是做一个计算器,通过实验报告要求来看,并不难。在实现的过程,我的思路...于是我添加文本框到一个面板,又把一系列按钮添加到一个面板,都分别用了网格布局。最后又做一个两行一列的网格布局。如下...
  • 组件:以图形化的方式显示在用户屏幕上,和用户进行交互的对象就叫做组件 (组件包括:菜单,标签,文本框,...面向对象的写法示例如下:继承Jframe类,构造方法中添加各种组件,测试类中定义组件,主函数只需要调用...
  • (5分)用户可以单击选项卡栏按钮以使用CollectionView查看电影海报的网格布局。 奖金 (2分)用户可以在收藏视图点击海报以查看该电影的详细屏幕。 (2分)在详细视图,当用户点击海报时,将以模态方式显示...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 199
精华内容 79
关键字:

网格布局中添加按钮