标签: border-layout

如何使用BorderLayout将两个组件放到JPanel中?

基本上我要做的是在JPanel的右侧添加两张图片,并排放在JPanel的中心,JLabel放在JPanel的右边,所以我被告知要将JPanel的布局设置为BorderLayout并且使用BorderLayout.CENTER添加图片,使用BorderLayout.EAST添加JLabel.

JPanel panel = new JPanel();
panel.SetLayout(new BorderLayout(100,100));

panel.add(pic1,BorderLayout.CENTER);
panel.add(pic2,BorderLayout.CENTER);
panel.add(new JLabel("Example"), BorderLayout.EAST);
Run Code Online (Sandbox Code Playgroud)

实际上,结果是图片在JPanel的左边相同,而JLabel在JPanel的右边.

非常感谢您的帮助!

java swing jpanel border-layout

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

仅在iPad上的桌子的单元格之间非常薄的白色边框

这仅发生在iPad视网膜和非视网膜iOS 5和6上.

即使我试图在桌子上没有边框,也会出现一个薄的白色边框.

你可以看到问题的一个例子http://codepen.io/anon/pen/Kcexq.

需要iPad或模拟器来查看pb.

仔细查看绿色选项卡是否有白色边框:

仔细看绿色标签有白色边框

对于记录,同样的事情发生在display-table-cell上.

html css html-table border-layout ipad

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

JPanels并没有完全伸展以占据可用空间

我有一个面板,我可以并排放置几个不同尺寸和颜色的迷你面板,它们应该占据整个父面板(​​水平).

为此我使用BorderLayout(用于父面板),BoxLayout用于子面板,我放置所有迷你面板(参见下面的代码).它可以正常工作,并且可以正常调整大小和一切.但是,随着迷你面板数量的增加,会出现奇怪的行为:父面板末端出现空白区域.

在此输入图像描述

我想我发现这是布局管理器中的拉伸错误,因为为了拉伸面板,布局管理器尝试向每个迷你面板添加一个像素.但是,当迷你面板的数量很大时,向每个面板添加一个像素将导致添加许多像素并超出父级的大小.因此,布局管理器最终不会向任何迷你面板添加任何像素,从而导致空白空间.

这是我的SSCCE :(尝试运行,拉伸窗口,以了解问题)

package com.myPackage;

import java.awt.*;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ColoredPanels extends JPanel
{
    /* Content information. */
    private Vector<Integer> partitions;
    private Vector<Color> colors;

    /* Panel where the content panels will go. */
    private JPanel contentHolder;

    private final int defaultHeight = 20;

    public ColoredPanels(Vector<Integer> partitions, Vector<Color> colors)
    {
        assert partitions != null;
        assert !partitions.isEmpty();
        assert colors != null;
        assert !colors.isEmpty();
        assert colors.size() == partitions.size();

        this.partitions = partitions;
        this.colors = …
Run Code Online (Sandbox Code Playgroud)

java swing awt jpanel border-layout

6
推荐指数
1
解决办法
3362
查看次数

Java Swing:更改 BorderLayout 上的边框宽度/高度

我是 Java Swing 的新手。我正在尝试制作一个包含三个按钮的框架;一个在中间,另一个在顶部,最后一个在右侧。我想让 NORTH 和 EAST 边界的宽度相同。但是现在,EAST 边界比 NORTH 边界宽。

我想知道是否有一种方法可以在 BorderLayout 中更改 WEST/EAST 边框的宽度或 NORTH/SOUTH 边框的高度。

java swing awt layout-manager border-layout

6
推荐指数
2
解决办法
3万
查看次数

css内边框,布局破损

我把屏幕分成许多,div所以它们彼此粘在一起(比如像棋盘这样的东西,但是有可变尺寸的字段).我设置heigthwidth使用百分比(相对于父容器).

现在,当我添加border: 1px到div时,所有布局都会中断...我想边框会为每边添加1px,解决方案是添加一些内部边框.我能以某种方式添加这样的内部边框吗?

css border border-layout

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

使用Grid/FlowLayout的JProgressbar宽度

我正在研究一个现在看起来像这样的下载器:

截图

JFrame使用BorderLayout.在NORTH,我有一个JPanel(FlowLayout).在SOUTH中还有一个JPanel(FlowLayout),在WEST中我只有一个JTextArea(在JScrollPane中).这一切都正确显示.但是,在EAST中我目前有一个JPanel(GridLayout(10,1)).

我想在EAST部分中显示最多10个JProgressBars,它们是动态添加到面板中的.问题是,我不能让它们看起来像我想让他们看起来:我希望JProgressBars的宽度填满整个EAST部分,因为1)这使应用程序具有更加对称的外观和2)ProgressBars可能包含目前不适合的长串.我已经尝试将包含GridLayout(10,1)的JPanel放在flowlayout中,然后将该flowlayout放在EAST部分中,但这也不起作用.

我的代码(SSCCE)目前如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;

public class Main {

    public static void main(String[] args) {
        new DownloadFrame();
    }

    private static class DownloadFrame extends JFrame {

        private JButton downloadButton;
        private JTextField threadIdTextField;
        private JTextArea downloadStatusTextArea;
        private JScrollPane scrollPane;
        private JTextField downloadLocationTextField;
        private JButton downloadLocationButton;

        private JPanel North;
        private JPanel South;
        private JPanel ProgressBarPanel;

        private Map<String, JProgressBar> progressBarMap;

        public DownloadFrame() {
            InitComponents();
            InitLayout();
            AddComponents();
            AddActionListeners();

            setVisible(true);
            setSize(700, 300);
        }

        private void …
Run Code Online (Sandbox Code Playgroud)

java swing grid-layout flowlayoutpanel border-layout

5
推荐指数
1
解决办法
3806
查看次数

BorderLayout不工作

我无法让BorderLayout工作.我希望取消按钮位于底部,但它不起作用.码:

import java.awt.BorderLayout;

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

import javax.swing.ButtonModel;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

class Test {
    public static JFrame owner;
    public static void main(String[] args) {
        final JDialog frame = new JDialog(owner, "Test");
        frame.setLayout(new BorderLayout());
        frame.setSize(500, 300);
        final JPanel panel = new JPanel();
        final ButtonGroup group = new ButtonGroup();
        String[] options = {"1", "2", "3"};
        for (String text : options) {
            JRadioButton option = new JRadioButton(text);
            option.setActionCommand(text);
            group.add(option);
            panel.add(option);
        }
        JButton okButton …
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager border-layout

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

在Ext.Viewport的anchorlayout面板中折叠嵌套的borderlayout面板

我开始学习Ext并坚持这样的问题.我有一个带代码的视口

Ext.define('WIMM.view.Viewport', {
extend: 'Ext.container.Viewport',
autoScroll: true,
layout: 'anchor',
items: [
    {
        border: false,
        title: 'Header',
        layout: 'fit',
        xtype: 'container',
        html: 'Header block. We\'ll try to do this again'
    },{
        layout: 'border',
        items: [
            {
                collapsible: true,
                width: 240,
                title: 'Aside Column',
                region:'west',
                layout: 'fit',
                html: 'Aside widgets (news, balance, budget, goals) would be here.'
            },{
                title: 'Main Block',
                border: false,
                region:'center',
                layout: 'fit',
                html: 'Main block were tabPanel would be nested in.'
            }
        ]
    },{
        title: 'footer',
        xtype: 'container', …
Run Code Online (Sandbox Code Playgroud)

nested extjs collapse border-layout extjs4

5
推荐指数
1
解决办法
1080
查看次数

无法在BorderLayout中更改块的大小

我创建了带边框布局的简单应用程序,并在其中添加了两个按钮和JTable.我在button2和JTable之间使用JSplitPane.我想重新定义块的默认大小,其中位于button1.我该如何解决这个任务?

这是我的代码:

package test;

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;

public class Sample {

    public Sample() {
        JFrame app = new JFrame("Sample");
        app.setSize(new Dimension(800,600));

        JPanel panel = new JPanel();
        app.add(panel);

        BorderLayout borderlayout = new BorderLayout();
        panel.setLayout(borderlayout);

        JButton but1 = new JButton("1");
        JButton but2 = new JButton("2");
        but2.setMinimumSize(new Dimension(250,0));
        String[] colNames = {"Name","Number","Scores"};
        Object[][] data = {
                { "Mark",11,12},
                {"Tommy",23,34},
                {"John",34,45}
        };
        JTable table = new JTable(data, colNames);

        JScrollPane …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jbutton border-layout

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

swing flowlayout PreferredSize 不会自动更改

我想要一个FlowLayoutforMyPanel来添加一些任意按钮。我添加MyPanelJFramenorth(JFrame有一个BorderLayout)。我的问题是:
当里面的按钮MyPanel占据超过一行时,它们不会显示。
换句话说,preferredSizeofMyPanel不会自动改变以显示其全部内容。它只显示一排按钮。

 public class NewMain {
   public static void main(String[] args) {
     JFrame mainFrame = new JFrame();
     mainFrame.getContentPane().setLayout(new BorderLayout());
     mainFrame.setSize(new Dimension(500,500));

     JPanel p1 = new MyPanel();
     p1.setLayout(new FlowLayout());
     mainFrame.add(p1,BorderLayout.NORTH);
     mainFrame.add(new JButton("center"),BorderLayout.CENTER);
     p1.add(new JButton("helllloo1"));
     p1.add(new JButton("helllloo2"));
     p1.add(new JButton("helllloo3"));
     p1.add(new JButton("helllloo4"));
     p1.add(new JButton("helllloo5"));
     p1.add(new JButton("helllloo6"));
     p1.add(new JButton("helllloo7"));

    mainFrame.setVisible(true);
  }

  public static class MyPanel extends JPanel{

  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我进行更改MyPanel以覆盖getPreferredSize并设置恒定大小时,它可以正常工作。

public static class …
Run Code Online (Sandbox Code Playgroud)

java swing layout-manager flowlayout border-layout

5
推荐指数
1
解决办法
3336
查看次数