, 可以 调用 Component 组件的 setBounds 函数 , 手动为其设置 位置 和 大小 , 手动设置宽高大小的像素值后 , 会造成 程序在不同平台的适配问题 , 如 : 在 Windows..., 指定的 垂直间距 和 水平间距 , 创建流式布局 ; /** * 使用指定的对齐方式创建一个新的流布局管理器 * 以及指示的水平和垂直间隙。...--- GridLayout 构造函数 : GridLayout() : 单行网格布局 ; /** * 创建一个默认为每个组件一列的网格布局, * 在单行中。...默认 的卡片布局管理器 ; /** * 创建一个空白大小为0的新卡片布局。...(); box2.add(new Button("垂直按钮 1")); box2.add(new Button("垂直按钮 2")); // 创建存放两组按钮的
布局管理是GUI编程中的重要部分。布局管理是一种如何在应用窗口上放置组件的方法。 我们可以通过两种基本方式来管理布局。 绝对定位和布局类。...上文我们提到PyQt编程中的绝对定位,今天我们来谈谈另外一种布局方式-窗口布局。 使用四种窗口布局管理界面控件布局是组织窗口小部件的首选方式。...3个按钮,创建了3个按钮之后,将3个按钮进行从左到右的水平布局。...3个按钮,创建了3个按钮之后,将3个按钮进行矩阵排列。...如括号里面的(0,0,1,1),这里的话,前两个数字意思是将按钮放置在矩阵开始的第一行第一列,后两个数字意思是按钮占一行一列,也就是一个空格的空间。
布局管理器负责,如组件的排列顺序、大小、位置,当窗口移动或调整大小后组件如何变化等。...FlowLayout(int align):创建一个FlowLayout对象,指定的对齐方式,默认的水平和垂直间隙是5个单位。...GridLayout布局主要的构造方法如下: GridLayout():创建具有默认值的GridLayout对象,即每个组件占据一行一列。...GridLayout(int rows, int cols):创建具有指定行数和列数的GridLayout对象。...GridLayout(int rows, int cols, int hgap, int vgap):创建具有指定行数和列数的GridLayout对象,并指定水平和垂直间隙。
如android:layout_gravity 是控制组件本身的对齐方式, android:gravity是控制本容器子组件的对齐方式; ....LayoutParams内部类, 这些内部类用于控制该布局本身, 如 对齐方式 layout_gravity, 所占权重 layout_weight, 这些属性用于设置本元素在父容器中的对齐方式; 容器属性...使用代码使上面的霓虹灯效果动起来 (1) 图片效果 (2) 颜色资源 创建颜色资源, 在跟节点下面创建子节点, color属性标签 name 自定义, 子文本为颜色代码...实现一个计算机界面 (1) 布局代码 设置行列 : 设置GridLayout的android:rowCount为6, 设置android:columnCount为4, 这个网格为 6行 * 4列 的;...: GridLayout.SpeccolumnSpec = GridLayout.spec(int); 创建LayoutParams对象 : GridLayout.LayoutParams params
python 代码解读复制代码self.tab1_gridLayout = QtWidgets.QGridLayout() # 新建网格布局self.tab1_gridLayout.setHorizontalSpacing...(30) # 设置水平间距self.tab1_gridLayout.setVerticalSpacing(30) # 设置垂直间距self.tab1_gridLayout.setContentsMargins...ini 代码解读复制代码# 创建一个 QFormLayout 实例layout = QFormLayout()# 添加一些字段到布局中layout.addRow("姓名:", QLineEdit())...# 直接在 addRow 中创建 QLineEditlayout.addRow("年龄:", QLineEdit())# 可以先创建控件,然后把它们作为参数传递给 addRowemailLabel =...# 每当文本改变时,都会发出此信号self.lineEdit.textEdited.connect(self.onTextChanged) #用户通过键入改变文本时,发出此信号(不包括通过编程方式更改文本
布局管理器 表12.19中列举了GridLayout类的构造方法,接下来通过一个案例来演示GridLayout布局管理器的使用,如例12-18所示。...int i = 1; i <=9; i++) { 12 b = new JButton(i+""); // 创建按钮 13 jFrame.add...例12-18运行结果 图12.20中,运行程序创建Frame窗体后,将布局设置为使用GridLayout布局管理器,设置以两行三列布局,并设置组件之间的水平和垂直间距都为10,之后添加6个按钮到Frame...图12.21中,运行程序创建Frame窗口后,创建了GridBagLayout对象和GridBagConstraints对象,调用makeButton() 方法向 JFrame窗口填充按钮,并使用 GridBagConstraints...CardLayout类构造方法和常用方法 方法声明 功能描述 public CardLayout() 创建一个各组件间距为0的CardLayout布局管理器 public CardLayout(int
通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。...构造方法 方法功能 FlowLayout() 使用默认 的对齐方式及默认的垂直间距、水平间距创建 FlowLayout 布局管理器。...FlowLayout(int align) 使用指定的对齐方式及默认的垂直间距、水平间距创建 FlowLayout 布局管理器。...Panel对象,并且设置其布局管理器为GridLayout Panel p2 = new Panel(); p2.setLayout(new GridLayout(3,5,4,4...如 果其增 加比例为 0 , 则 表示不会增加 。
中间三行按钮都是前一种,我们使用GridLayout来布局,每行显示 4 个: digits := []string{ "7", "8", "9", "×", "4", "5", "6", "-...最后一行由于0这个按钮宽度是其它按钮的 2 倍。我们先使用GridLayout布局,将这一行平均分成两Grid(即每行 2 个控件)。...按钮0独占一个Grid,由于GridLayout布局中每个Grid大小相同,故按钮0有整个行一半的宽度。...按钮响应 清空按钮响应比较简单,直接将显示框的Text设置为空即可: func clear(display *widget.Entry) func() { return func() { display.Text...当然计算器功能和错误处理还不完善,而且实现偏过程式编程,感兴趣的可自行完善。完整代码在fyne/calculator中。
总结: (1)setLayout()是设置界面布局,如界面有几行几列 如jf.setLayout(new GridLayout(2,1));//容器共有2行1列。...里头写你所要设的布局 2.设置布局数据RowData(设置按钮的宽为100像素,高为30像素) Button button=new Button(shell,SWT.NONE); button.setText...(“B1”); //设置按钮的宽为100像素,高为30像素 button.setLayoutData(new RowData(100,30)); 3.设置布局数据GridData GridData gridData...属性: HorizontalAlignment:表示水平对齐方式。 VerticalAlignment:表示子组件的垂直对齐方式,值和水平方式一样。...对象的列数 shell.setLayout(gridLayout); // 设定shell的排列方式 GridData gridData; // 声明一个GridData
接着,将Frame容器的布局方式修改为FlowLayout,并指定了左对齐方式以及水平和垂直间距为20。...接着创建一个Panel对象p2,并设置其布局管理为GridLayout,即以网格形式排列组件。在p2中依次放置15个按钮,内容包括数字0-9,以及运算符"+“、”-“、”*“、”/“和小数点”."。...3x3的GridLayout布局,然后在面板中添加了9个按钮。...如 果其增 加比例为 0 , 则 表示不会增加 。...这段代码的效果是,将按钮以不同的布局方式添加到Frame中,并根据约束条件进行布局。
GUI 的各种元素(如:窗口,按钮, 文本框等)由 Java 类来实现。 使用 AWT 所涉及的类一般在 java.awt 包及其子包中。...GUI 元素,例如,一个按钮,一个标签等。...---- Frame Frame 是 Window 的子类,由 Frame 或其子类创建的对象为一个窗体。...Frame 的常用构造方法:Frame(); Frame(String s) // 创建标题栏为字符串 s 的窗口。 成员函数略。...在 GridLayout 构造方法中指定分割的行数和列数。(如:GridLayout(3, 4); // 整个空间分为3行4列。)
前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 经过前几篇的介绍,多少对SWT又有了一些认识,那么这篇继续来看一下一些控件的组合使用...比如文件路径的浏览,往往就需要一个文件浏览的按钮,和一个文本框。 这里先放出一段代码,代码中使用到了简单的布局模型GridLayout(),以及组和组合控件,还有一些简单的控件。...形成一个登陆界面,并且单击按钮可以出发响应事件。效果图如下: 登录前: ? 登陆后: ? ...39-49行:我们创建了一个组合对象,使他占有了两个列元素。并且设置组内为两列的网格布局。 关于事件的监听,之后也会搜集整理出一些常用的事件。 ...剩下的就比较好理解了,当没有空间元素填补的时候,为了防止布局错乱,创建了一个空的Label对象用来占位。
序号 方法 描述 1 public JRadioButton(Icon icon) 创建一个单选按钮,并设定图片 2 public JRadioButton(Icon icon, boolean selected...) 创建一个单选按钮,设定图片,并设定是否选中 3 public JRadioButton(String text) 创建一个单选按钮,制定按钮文本,默认不选中 4 public JRadioButton...(String text, boolean selected) 创建一个具有指定文本和选择状态的单选按钮。...5 public JRadioButton(String text, Icon icon, boolean selected) 创建一个具有指定的文本、图像和选择状态的单选按钮。...使用ButtonGroup就可以实现将所有的单选按钮加入到一个组件中,使用方式如下: //定义按钮组 ButtonGroup group=new ButtonGroup(); group.add(jradio1
苹果和微软是GUI方面的先驱(虽然他们都一定程度上抄袭了Xerox),GUI也为这两位PC王者带来了丰厚的市场回报。 ? 早期Mac GUI GUI需要操作系统和硬件的支持。...相同的图形元素可以归为一类(class)。我们可以重复使用直线类来生成(不同性质的)直线,并组合到不同的对象中。 这是用面向对象的方式来理解一个图形。对象是描述图形的自然方式。...匿名类是Java的一种嵌套类,它是在使用new创建对象时,使用一个{}来直接包含类的定义。在匿名类定义中,我们不需要说明类名。...Content Pane中包含有两个按钮,即JButton元素。 Content Pane的setLayout()方法决定了元素的布局(layout)方式。布局决定了元素的位置。...更多的Java布局方式 图形元素 除了按钮之外,我们还可以在GUI中增加更多的元素,这些元素大都是JComponent的衍生类。
; 二、GridLayout 构造函数 ---- GridLayout 构造函数 : GridLayout() : 单行网格布局 ; /** * 创建一个默认为每个组件一列的网格布局..., int cols) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用默认值 ; /** * 创建具有指定行数和的网格布局 * 列。..., int cols, int hgap, int vgap) : 网格布局 中的 行数 和 列数 使用指定的值 , 网格的 水平 和 垂直 间隔使用指定的值 ; /** * 创建具有指定行数和的网格布局...main(String[] args) { // Frame 默认的布局管理器就是 BorderLayout Frame frame = new Frame("AWT 界面编程...网格布局的基础上 , 单个组件可以占用多个网格 , 占用的多个网格的大小形状也可以任意设置 , 每个组件都可以占用多行和多列的网格 , 即 m x n 大小的网格 , 如 : 占用 1 x 2 的网格
开始设计 首先,我们先设计下将要设计的键盘布局图,如下图: 可以看到这个布局的一些特点: 1) 有5行4列 2)每行的单元格和列方向的单元格的大小都是不一定相等的,比如“+”号这个按钮...GridLayout布局策略 GridLayout布局样式和LinearLayout样式一样,可以有水平和垂直两个方向的布局方式。...即如果设置为垂直方向布局,则下一个单元格将会在下一行的同一位置或靠右一点的位置出现,而水平方向的布局,则意味着下一个单元格将会在当前单元格的右边出现,也有可能会跨越下一行(因为有可能GridLayout...> 定义简单的单元格 在GridLayout中,定义每个子控件跟以前使用布局中定义的方法有点不同,默认的是对所有的子控件使用wrap_content的方式,而不是显式声明宽度和高度并使用...,可以利用android 4.0 GridLayout布局中的 layout_gravity属性,设置每个按钮中的位置,只需要设置layout_gravity属性为fill,即可将每个控件填充到其
, 并设置对应的按钮点击事件 , 但是 具体的在 Windows 或 Linux 平台创建按钮的操作 并 不是由 AWT 完成的 , 而是 由 JVM 调用本地平台的 API 进行创建的 , AWT...布局管理器 也是重要的 接口 , 实现如 : GridLayout , FlowLayout 等 , 用于 管理多个组件的布局排列 ; 在 AWT 中使用 Component 组件类 和 MenuComponent...创建窗口 Frame frame = new Frame("AWT 图形界面编程"); // 2....Frame frame = new Frame("AWT 图形界面编程"); // 创建 Panel Panel panel = new Panel(...Button button = new Button("测试按钮"); , 按钮文本为 " 测试按钮 " , 但是在 窗口中显示时 , 显示的乱码 : 这是因为 Java 程序代码的编码方式是 UTF
(表格布局) 有点类似,不过它功能更多,也更加好用 可以自己设置布局中组件的排列方式 可以自定义网格布局有多少行,多少列 可以直接设置组件位于某行某列 可以设置组件横跨几行或者几列 计算器布局的实现...> GridLayout android:layout_width=”fill_parent”:网格布局宽度为填满屏幕 GridLayout android:layout_height=”wrap_content...”:网格布局高度为包裹内容 GridLayout android:columnCount=”4″:网格布局设置 4 列 GridLayout android:rowCount=”6″:网格布局设置...6 行 GridLayout android:orientation=”horizontal”:网格布局设置为水平布局 回退 与 清空 按钮横跨两列,其它按钮都是直接添加,占用一行一列 通过 android...设置了组件横跨多行或者多列时,如果想要让组件填满横越过的行或列的话,则可以设置 android:layout_gravity = “fill” android:layout_gravity=”fill”:设置内容对其方式为填充
文章目录 一、布局管理器引入 二、布局管理器提高程序的适配性 三、LayoutManager 布局管理器类 一、布局管理器引入 ---- 在上一篇博客 【Java AWT 图形界面编程】Container...容器 ③ ( ScrollPane 可滚动容器示例 ) 中 , 向 ScrollPan 中添加了 TextField 文本框 和 Button 按钮 , 但是显示的时候效果如下 : 只显示了一个按钮..., 这是由于 ScrollPan 默认的 LayoutManager 布局管理器 导致的 ; 二、布局管理器提高程序的适配性 ---- 在界面中 添加一个 Button 按钮组件 , 可以 调用 Component...组件的 setBounds 函数 , 手动为其设置 位置 和 大小 , 手动设置宽高大小的像素值后 , 会造成 程序在不同平台的适配问题 , 如 : 在 Windows 中设置 100 px 的效果...布局管理器 可以根据不同的操作系统 , 自动调整组件的位置和大小 ; 三、LayoutManager 布局管理器类 ---- LayoutManager 布局管理器类 : LayoutManager 接口 GridLayout
当用户单击”开始”按钮时,将启动一个线程对象为5个文本框生成随机数字。单击”抽奖”按钮时,线程对象停止运行,并且将准确的中奖号码显示在信息文本框中。 开发一个抽奖小工具的实例。...contentPanel.add(numPanel); //添加随机数面板到内容面板 final GridLayout gridLayout = new GridLayout(1, 0); gridLayout.setHgap...(10); numPanel.setLayout(gridLayout); //设置随机数面板布局管理器 numFields = new NumField[5]; //创建随机数文本框数组 for(...().add(controlPanel, BorderLayout.SOUTH); //添加面板到窗体底部 final JButton startButton = new JButton(); //创建开始按钮...final JButton lotteryButton = new JButton(); //创建抽奖按钮 lotteryButton.addActionListener(new ActionListener
领取专属 10元无门槛券
手把手带您无忧上云