首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >BoxLayout中的Java Swing对齐问题

BoxLayout中的Java Swing对齐问题
EN

Stack Overflow用户
提问于 2021-09-28 01:46:36
回答 1查看 52关注 0票数 0

我在一个自上而下的boxLayout中有三个组件(JLabel、JTextField、JButton)。问题是,当我为标签设置X对齐时,它看起来好像我已经改变了按钮的X对齐,反之亦然,只有当两者都有相同的对齐方式时,它才能正常工作。

当屏幕变宽时,两个组件都会出现奇怪的对齐方式。

当两个组件具有相同的对齐方式时,一切工作正常。

下面是我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void create(){
    JPanel panel =  new JPanel();
    BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
    panel.setLayout(boxLayout);
    panel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
    
    JLabel etiqueta =  new JLabel("Numero de consultorio: ");
    etiqueta.setBackground(Color.BLUE);
    etiqueta.setOpaque(true);
    etiqueta.setAlignmentX(Component.LEFT_ALIGNMENT);
    panel.add(etiqueta);
    
    JTextField consultorio = new JTextField();
    panel.add(consultorio);
    
    JButton registrar =  new JButton("Registrar");
    registrar.setAlignmentX(Component.LEFT_ALIGNMENT);
    panel.add(registrar);
    
    this.getContentPane().add(panel, BorderLayout.CENTER);
}
EN

回答 1

Stack Overflow用户

发布于 2021-09-28 02:35:25

以下是Andrew Thompson提出的解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

public class TestFrame {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new TestFrame()::create);
    }

    private void create() {
        JPanel panel = new JPanel();
        BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.Y_AXIS);
        panel.setLayout(boxLayout);
        panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

        JLabel etiqueta = new JLabel("Numero de consultorio: ");
        etiqueta.setBackground(Color.BLUE);
        etiqueta.setOpaque(true);
        JPanel layout = new JPanel(new FlowLayout(FlowLayout.LEADING, 0, 0));
        layout.add(etiqueta);
        panel.add(layout);

        JTextField consultorio = new JTextField();
        panel.add(consultorio);

        JButton registrar = new JButton("Registrar");
        layout = new JPanel(new FlowLayout(FlowLayout.TRAILING, 0, 0));
        layout.add(registrar);
        panel.add(layout);

        JFrame frm = new JFrame("Test");
        frm.getContentPane().add(panel, BorderLayout.CENTER);
        frm.pack();
        frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frm.setLocationRelativeTo(null);
        frm.setVisible(true);
    }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69359417

复制
相关文章
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
YGingko
2017/12/27
6.3K0
5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)
【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )
在上一篇博客 【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 ) 中 , 向 ScrollPan 中添加了 TextField 文本框 和 Button 按钮 , 但是显示的时候效果如下 :
韩曙亮
2023/03/30
4.2K0
【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )
【错误记录】Java AWT 图形界面编程报错 ( Exception in thread “main“ java.awt.AWTError: BoxLayout can‘t be shared )
尝试使用 Panel 实现线性布局 , 为 Panel 设置 BoxLayout 布局管理器 ;
韩曙亮
2023/03/30
6570
【错误记录】Java AWT 图形界面编程报错 ( Exception in thread “main“ java.awt.AWTError: BoxLayout can‘t be shared )
java swing 多层_java swing布局嵌套[通俗易懂]
this.frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
全栈程序员站长
2022/11/16
1.5K0
java swing 多层_java swing布局嵌套[通俗易懂]
Java Swing中动态删除组件
    一直以来都不喜欢Java的GUI程序,界面丑陋,而且感觉功能也不强大,但是为了跨平台也没办法!
卡尔曼和玻尔兹曼谁曼
2019/01/25
2.1K0
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑥ ( BoxLayout 布局 )
BoxLayout 布局 不是 AWT 中的布局 , 而是 Swing 中引入的 ;
韩曙亮
2023/03/30
7160
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑥ ( BoxLayout 布局 )
JAVA学习中Swing概述中的JFrame学习
别先生
2017/12/29
1.7K0
java-GUI编程之布局类型介绍
java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来sun公司又提供了Swing库。通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。
愷龍
2022/09/26
1.7K0
java-GUI编程之布局类型介绍
Java Swing JTable
JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。 JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。例如,要建立一个包含10行10列数字的表:
JavaEdge
2021/02/22
5.1K0
Java Swing JTable
Java Swing BorderLayout
BorderLayout,边界布局管理器。它把 Container 按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。
JavaEdge
2021/02/22
5240
如何在Swing组件中使用HTML
许多Swing组件在其GUI中显示文本字符串。默认情况下,组件的文本以一种字体和颜色显示,并且全部显示在一行上。 可以分别通过调用组件的setFont和setForeground方法来确定组件文本的字体和颜色。例如,以下代码创建一个标签,然后设置其字体和颜色:
JavaEdge
2021/02/22
2.5K0
如何在Swing组件中使用HTML
BoxLayout
BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。
JavaEdge
2021/02/22
3140
BoxLayout
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑦ ( Box 容器 | Box 容器中添加分割 )
为了 方便使用 BoxLayout 布局 , Swing 中提供了 Box 容器 ;
韩曙亮
2023/03/30
4600
【Java AWT 图形界面编程】LayoutManager 布局管理器 ⑦ ( Box 容器 | Box 容器中添加分割 )
Java Swing 的Document类详解
Document是用于文本的容器,用作swing文本组件的模型。 此接口的目标是从非常简单的需求(纯文本文本字段)扩展到复杂需求(例如,HTML或XML文档)。
JavaEdge
2020/05/27
2.1K0
Java Swing 的Document类详解
java swing入门教程_java swing基础(菜鸟教程学习)
3.Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表 4个器件
全栈程序员站长
2022/09/15
2.6K0
Java Swing中的透明窗体(Windows中消息提示框的制作)
首先需要在工程中导包,需要用到JRE中的rt.jar包,我的JDK安装在C盘,目录如下:C:\Program Files\Java\jre7\lib\rt.jar。
卡尔曼和玻尔兹曼谁曼
2019/01/25
2.2K0
java swing图形化界面_javagui界面设计
本文链接: http://blog.csdn.net/xietansheng/article/details/72814531
全栈程序员站长
2022/09/28
1.7K0
java swing图形化界面_javagui界面设计
struct对齐问题
ChinaUnix最近有个贴子讨论热烈,在这里记录一下我的理解,struct的对齐是遵照下列二个条件中最小的一个进行的: 1.#pragma pack(N)中N指定的值 2.struct中最大的成员(请注意不是指sizeof值最大的那个,而应当是__alignof__值最大的那个) 对于double等几个类型,它的alignof值是可通过编译开关-mno-align-double和-malign-double来控制的,其中-mno-align-double表示double的alignof值为字长,而-mn
一见
2018/08/07
1.2K0
JAVA Swing 学生管理系统
前段时间用JAVA+Mysql做了一个学生管理信息系统,开始只是对JAVA的练练手,最终实现了用户可在不同电脑上(联网情况)实现登入,并且对学生信息的增删查改操作。通过这个小程序,自己也收获不少。
可爱见见
2019/09/09
5.2K2
JAVA Swing 学生管理系统
java 按钮复选框监听事件及恢复保存状态
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class Panel1 { public static void main(String[] args) { Panel1 gui=new Panel1(); gui.go(); } JPanel panel,panel2,panel3; JTextArea text; JScrollPane scroller; JChec
葫芦
2019/05/09
1.9K0

相似问题

Java Swing (BoxLayout)对齐问题

23

Java Swing JButton对齐- BoxLayout

116

Java BoxLayout对齐问题

22

swing:在JPanels中对齐BoxLayout

10

swing: BoxLayout和横向对齐?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文