标签: layout-manager

如何使JLabel从下一行开始

JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.add(economy);
pMeasure.add(regularity);
...
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我得到这个输出:

Economy Regularity
Run Code Online (Sandbox Code Playgroud)

如何获得此输出,每个JLabel在新行上启动?谢谢

Economy  
Regularity
Run Code Online (Sandbox Code Playgroud)

java swing jlabel jpanel layout-manager

10
推荐指数
2
解决办法
5万
查看次数

在线Java GUI Builder?至少布局管理器

我在网上找不到一个,我很惊讶没有一个......但至少有一个在线Java GUI Layoutmanager吗?

java layout-manager

10
推荐指数
1
解决办法
3万
查看次数

Java Swing GridLayout"Cell span"?

有没有办法让网格布局中的单个元素占用网格中的多个位置.示例:我想创建一个占据整个网格行的文本框,有什么办法可以做到这一点吗?

java swing layout-manager grid-layout

10
推荐指数
1
解决办法
2万
查看次数

我怎么把JPanel分成70%30%

可能重复:
Swing:如何将组件高度设置为容器的高度?

我如何划分JPanel像下面显示的图片有2个面板panel1和panel2 panel1应占70%和panel2 30%或panel1应该大于panel2 ...我试过Gridlayout,边框布局,但它不工作.任何帮助不胜感激.

public class TestApplication extends JApplet {

private static final long serialVersionUID = 1L;

    JPanel p1,p2;

    public void init(){         
        setLayout(new GridLayout(3,1));
        p1=new JPanel();
        p2=new JPanel();

        p1.setBackground(Color.RED);
        p2.setBackground(Color.GREEN);

        add(p1);
        add(p2);
    }   
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java swing jpanel layout-manager japplet

10
推荐指数
1
解决办法
4354
查看次数

java JPanel如何修复大小

我希望有一个可调整大小的面板,它总是有一个固定深度的顶部绿色面板.即所有高度变化都应仅影响黄色面板.

我的代码几乎没问题,但绿色面板的大小略有不同.

我该怎么做呢?

            Panel.setLayout(new BoxLayout(Panel, BoxLayout.Y_AXIS));
        Panel.setAlignmentX(Component.LEFT_ALIGNMENT);

        JPanel TopPanel = new JPanel();
        TopPanel.setPreferredSize(new Dimension(80,150));
        TopPanel.setVisible(true);
        TopPanel.setBackground(Color.GREEN);
        JPanel MainPanel = new JPanel();
        MainPanel.setPreferredSize(new Dimension(80,750));
        MainPanel.setVisible(true);
        MainPanel.setOpaque(true);
        MainPanel.setBackground(Color.YELLOW);

        Panel.add(TopPanel);
        Panel.add(MainPanel);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

java swing jpanel layout-manager

10
推荐指数
1
解决办法
4万
查看次数

如何在JLabel中对图标进行右对齐?

对于带有图标的JLabel,如果setHorizontalTextPosition(SwingConstants.LEADING)是,则无论标签有多宽,都会在文本后面立即绘制图标.

这对于列表来说尤其糟糕,因为图标将遍布整个地方,具体取决于每个项目的文本长度.

我跟踪代码,似乎是SwingUtilities#layoutCompoundLabelImpl,文本宽度只是设置为SwingUtilities2.stringWidth(c, fm, text),而图标x设置为跟随文本而不考虑标签宽度.

这是最简单的情况:

import java.awt.*;
import javax.swing.*;

public class TestJLabelIcon
{
    public static void main(String args[])
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                JLabel c = new JLabel("abc");
                c.setHorizontalTextPosition(SwingConstants.LEADING);
                c.setHorizontalAlignment(SwingConstants.LEADING);
                c.setIcon(UIManager.getIcon("FileChooser.detailsViewIcon"));
                c.setBorder(BorderFactory.createLineBorder(Color.RED));

                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                frame.getContentPane().add(c);    
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以看到标签始终填充框架但图标保持不变.如果将两个参数都设置为,则会出现镜像问题TRAILING.

我知道我可以覆盖UI,或使用JPanel等.我只是想知道我是否在JLabel中遗漏了一些简单的东西.如果没有,它似乎是一个Java bug.

仅供参考,这是Windows XP上的jdk1.6.0_06.

java swing jlabel jpanel layout-manager

9
推荐指数
3
解决办法
1万
查看次数

获取具有固定宽度的多行文本的高度,以使对话框正确调整大小

我想创建一个包含某种文本元素(JLabel/JTextArea等)的对话框,它是多行的并包装单词.我希望对话框具有固定宽度,但根据文本的大小调整高度.我有这个代码:

import static javax.swing.GroupLayout.DEFAULT_SIZE;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class TextSizeProblem extends JFrame {
  public TextSizeProblem() {

    String dummyString = "";
    for (int i = 0; i < 100; i++) {
      dummyString += " word" + i;  //Create a long text
    }
    JLabel text = new JLabel();
    text.setText("<html>" + dummyString + "</html>");

    JButton packMeButton = new JButton("pack");
    packMeButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        pack();
      }
    });

    GroupLayout layout = new GroupLayout(this.getContentPane());
    getContentPane().setLayout(layout);
    layout.setVerticalGroup(layout.createParallelGroup()
        .addComponent(packMeButton)
        .addComponent(text)
    ); …
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager

8
推荐指数
3
解决办法
6959
查看次数

setAlignmentY不在BorderLayout中居中JLabel

新的java和全新的网站.我有一个JLabel添加到BorderLayout的中心面板.我希望JLabel能够集中在小组中; setAlignmentX似乎有效,但setAlignmentY没有(标签出现在面板的顶部).这是代码:

centerPanel = new JPanel();
centerPanel.setLayout(new BoxLayout(centerPanel,BoxLayout.Y_AXIS));

JLabel label = new JLabel("This should be centered");
label.setAlignmentX(Component.CENTER_ALIGNMENT);
label.setAlignmentY(Component.CENTER_ALIGNMENT);
centerPanel.add(label);

contentPane.add(centerPanel, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)

我也尝试过label.setVerticalAlignment(CENTER);但无济于事.我已经在API和Java教程中,在这个网站上以及通过谷歌搜索寻找答案.谢谢!

java swing jlabel layout-manager

8
推荐指数
1
解决办法
2万
查看次数

GridLayout上的FlowLayout无法正常工作

我正在尝试创建一个刽子手游戏,到目前为止,它正在进行中,但布局设计似乎并没有落实到位!字母表应该以FlowLayoutHangman图片顶部的顺序结束,底部有"重启","帮助","添加新单词"和"退出"按钮!我究竟做错了什么?

刽子手

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Hangman extends JFrame
{
    int i = 0;
    static JPanel panel;
    static JPanel panel2;
    static JPanel panel3;

    public Hangman()
    {
        JButton[] buttons = new JButton[26];

        panel = new JPanel(new FlowLayout());
        panel2 = new JPanel();
        panel3 = new JPanel();

        JButton btnRestart = new JButton("Restart");
        btnRestart.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {

            }
        });

        JButton btnNewWord = new JButton("Add New Word");
        btnNewWord.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                try …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jframe layout-manager

8
推荐指数
1
解决办法
2242
查看次数

使用java中的swing将按钮放在指定位置

我正在努力学习如何制作JAVA程序,我正在使用Swing.我试图在窗口的左上角放置一个按钮,它会一直到达顶部中心.

public void createGUI(){
    JFrame frame = new JFrame("My Project");
    frame.setDefaultCloseOperation(3);
    frame.setSize(400, 350);
    frame.setVisible(true);

    JPanel panel = new JPanel();

    frame.add(panel);

    addButtonGUI(panel, new JButton(), "test", 1, 1);
}

public void addButtonGUI(JPanel panel, JButton button, String text, int x, int y){
    GridBagConstraints gbc = new GridBagConstraints();
    button.setText(text);
    button.setEnabled(true);
    gbc.gridx = x;
    gbc.gridy = y;
    gbc.gridwidth = 2;
    gbc.weightx = 1.0D;
    gbc.fill = 2;
    panel.add(button, gbc);
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么或者有更好的方法吗?请帮忙

java swing jpanel layout-manager gridbaglayout

8
推荐指数
2
解决办法
1061
查看次数