Tag: null layout manager

在没有布局管理器的情况下将JScrollPane添加到JPanel

在开始之前,我知道不使用布局管理器是个坏主意,通常我会使用布局管理器,但是,我也会根据窗口的大小自动重新resize并重新定位。 此外,我正在开发的程序仅用于在整个生命周期内在一台机器上运行。 请不要因为缺少布局管理器而向我投票,我发现它是我需要的特定程序。 对于我的问题,我在stackoverflow上发现了类似的post,但从未实现过解决方案。 我正在向我的JPanel添加动态数量的JLabels ,我注意到当不使用布局管理器时,滚动条不起作用。 这是我的初始化代码的简化版本。 JPanel mypanel = new JPanel(); mypanel.setLayout(null); mypanel.setSize(800,450); mypanel.setForeground(Color.WHITE); mypanel.setBackground(Color.BLACK); scrollablePanel = new JScrollPane(mypanel); scrollablePanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollablePanel.setPreferredSize(new Dimension(800,300)); scrollablePanel.setSize(800,300); scrollablePanel.setLocation(250,156); myContainer.add(scrollablePanel); myContainer将成为容器(也没有布局管理器)。 稍后将JLabels添加到JPanel中: enter code here mypanel.add(label1); 为setForeground和setBackground等标签设置了一些基本设置后。 不幸的是,在运行时,滚动条看起来好像不需要(见图) http://sofzh.miximages.com/java/zp0QKGG.png 图像中显示的表格文本由多个JLabels 。 如果在不使用布局管理器的情况下无法解决问题,我将切换到BoxLayout,我只是希望有一个解决方案。

当需要绝对定位时,null布局管理器的替代解决方案

几个月前,我阅读了这个Swing教程http://zetcode.com/tutorials/javaswingtutorial/resizablecomponent/ ,了解如何在Swing中实现可resize的组件。 本教程讲述了使用null LayoutManager以便有可能绝对定位子组件。 在关于另一个主题的讨论中,@ Andrew Thompson指出使用null布局是个坏主意。 这篇文章http://download.oracle.com/javase/tutorial/uiswing/layout/none.html描述了null布局管理器,因为它无论如何都说在某些情况下它可能是有用的。 在以下情况: 我需要绝对定位JPanel的子组件 我需要为子组件实现我自己的边界框条件(以便建立可能的重叠情况) 我需要JPanel的子组件可resize 在描述的情况下是否正确使用null布局管理器? 或者还有其他更好的解决方案来使用我的JPanel容器组件的布局管理器来实现这些目标? 提前致谢

适用于可resize的组件的LayoutManager

前段时间我读到这篇文章 ,展示了一种在Swing中实现鼠标可resize的组件的方法。 作者使用null LayoutManager以允许绝对组件定位。 我知道永远不应该使用null布局,所以我的问题是: 是否有任何已经实现的LayoutManager允许组件的绝对定位,或者我必须自己实现它?

如何设置jlabel的修复大小?

我正在尝试创建一个java桌面应用程序,我正在使用多个JLabel我想设置JLabel修复高度和宽度。 我怎样才能做到这一点? 这是我的代码 public class Second extends JFrame { JPanel panel1,panel2; JLabel label=new JLabel(); ArrayList lbllist = new ArrayList(); public Second() { super(“Simple Timer”); { getContentPane().setBackground(new java.awt.Color(255,255,255)); } this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); Container c = getContentPane(); c.setLayout( new FlowLayout()); setUndecorated(true); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds(0,0,screenSize.width, screenSize.height); panel2=new JPanel(); panel2.setBounds(360, 180, 360, 1020); panel2.setBackground(new java.awt.Color(255,153,51)); c.add(panel2); JPanel panel3 = […]

使用“setlayout(null)”时,窗口小部件表现得很奇怪

我在我的代码中进行以下调用: … setLayout(null); … 我正在尝试通过指定x和y坐标来放置按钮和文本字段。 我运行程序(使用Eclipse或BlueJ)时的问题是我需要在面板上运行到按钮和文本字段的位置,以便分别查看按钮和文本字段。 当我找到文本字段时,它很小。 只有当我开始写作时才会假定我指定的大小。 有谁知道如何解决它?

使用具有null布局的JPanel

所以我有一个名为CalendarPanel的类,它扩展了JPanel 。 它使用null布局。 我如何使用CalendarPanel作为常规组件? 当我把它放在另一个JPanel然后将其添加到窗口时,它就会消失。 它只有在我直接添加到窗口时才可见。 编辑:是的,我意识到使用带有空布局的JPanel是不好的做法。 CalendarPanel实际上是别人的代码,我试图将它用于我的目的,而不必重构它。

将JLabel放置在JPanel上的特定x,y坐标上

我正在尝试在JPanel上的特定X和Y坐标处放置一系列JLabel(并设置其高度和宽度)。 无论我做什么,每个标签都会立即卷到前一个标签的右侧,并且与所有其他标签的尺寸完全相同。 现在,我的Jpanel处于网格布局中。 我尝试过Absolute Layout(非法参数exception结果),Free Design(没有标签出现),Flow Layout(一切都被挤到中心),以及其他一些。 不知道我需要做些什么来使这项工作。 有人可以帮忙吗? 谢谢! JLabel lbl1 = new JLabel(“label 1”); JLabel lbl2 = new JLabel(“label 2”); JLabel lbl3 = new JLabel(“label 3”); JLabel lbl4 = new JLabel(“label 4”); JLabel lbl5 = new JLabel(“label 5”); myPanel.add(lbl1); myPanel.add(lbl2); myPanel.add(lbl3); myPanel.add(lbl4); myPanel.add(lbl5); lbl1.setLocation(27, 20); lbl2.setLocation(123, 20); lbl3.setLocation(273, 20); lbl4.setLocation(363, 20); lbl5.setLocation(453, 20); […]

JLabel不会显示JPanel.setLayout(null)。 为什么?

我想在地图上显示许多不同的标签,所以我在我的面板中使用null布局,并为每个标签调用setLocation。 但是,出于某种原因,标签没有显示。 如果我删除了pan.setLayout(null),则标签会出现在面板的顶部中心。 为什么null布局不能与setPosition一起使用? package mapa; import java.awt.*; import javax.swing.*; public class Mapa extends JFrame { private static JPanel pan; private static JLabel lab; public Mapa() { } private static void createAndShowGUI() { Mapa frame = new Mapa(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); lab = new JLabel(“TEXTO”); lab.setBackground(Color.black); lab.setForeground(Color.white); lab.setOpaque(true); lab.setVisible(true); pan = new JPanel(); pan.setLayout(null); pan.setPreferredSize(new Dimension(640,480)); pan.add(lab); […]

标签的setLocation

我让所有标签都正常工作但userLabel [3]无法正确定位无论我做什么,标签“颜色:”始终显示在x坐标为0且y坐标为0的框架上在框架的一半。 JLabel[] userLabel = new JLabel[4]; for(int p = 0; p < userLabel.length; p++){ userLabel[p] = new JLabel(); userLabel[p].setSize(100,50); frameSetUp.add(userLabel[p]); } userLabel[0].setText("Width of Frame:"); userLabel[1].setText("Height of Frame:"); userLabel[2].setText("# OF Balls:"); userLabel[3].setText("Color:"); userLabel[0].setLocation(10,35); userLabel[1].setLocation(10,85); userLabel[2].setLocation(10,135); userLabel[3].setLocation(0,0); //no matter what coordinates I change this too, it wont reposition 图片:[IMG] http://sofzh.miximages.com/java/23jfo9l.png [/ IMG] http://sofzh.miximages.com/java/23jfo9l.png

Java中的Null布局有什么问题?

你好。 在这个网站上花了无数个小时寻找代码在屏幕上拖动一个组件,我注意到答案中出现了一个奇怪的趋势。 ……因为每个人都在零布局的声音中颤抖。 所以我问, 每个人都有什么问题呢? 我已经编写了不超过三个月的编码,使用Swing不超过一个,并且布局已经轻而易举地使用无限的自定义。 为什么这是不好的做法?