草庐IT

GridBagConstraints

全部标签

java - JComboBox 单元格渲染器因 Windows 外观而失败

我正在编写一个使用本地系统外观的Java应用程序。在程序中有一个ListCellRenderer,它呈现彩色点(自定义JComponment),然后是给定对象的一些文本。这在使用Swing的默认Metal外观和感觉时效果很好。但是,当我使用WindowsLookandFeel时,单元格在下拉列表中正确呈现,但所选项目(当用户没有选择其他选项时显示的项目)仅呈现文本并忽略彩色点。如果我更改渲染器以设置字体,则会在下拉列表和所选项目中观察到正确的字体,因此我知道正在使用单元格渲染器,至少是部分使用。我已经在网络上阅读了一些关于不同的LAF导致此类问题的帖子,但还没有遇到任何人在讨论我的特定

java - 使 2 个 JButtons 大小相等

我有两个带有文本“Ok”和“Cancel”的JButton。我正在使用GridBagLayout在JDialog中对齐它们。我已将anchor设置为GridBagConstraints.CENTER。由于文本“Ok”和“Cancel”中的字符数不同,按钮的大小也不同。我如何正确对齐它们,以便它们中的每一个都具有相同的大小。我尝试了以下但无济于事。okayButton.setSize(cancelButton.getSize()); 最佳答案 尝试将填充设置为GridBagConstraints.BOTH并为两个按钮赋予相同的权重。

java - 为什么创建 GridBagConstraints 的内联版本不起作用?

为了使一些Swing代码更具可读性,我创建了一个InlineGridBagConstraints类,如下所示:publicclassInlineGridBagConstraintsextendsGridBagConstraints{publicInlineGridBagConstraintsgridx(intx){gridx=x;returnthis;}publicInlineGridBagConstraintsgridy(inty){gridy=y;returnthis;}publicInlineGridBagConstraintsgridheight(inth){gridheigh

java - 渲染时更改 JTree 行高调整行为

我只想在选择节点时使用包含三个文本字段的自定义TreeCellRenderer,而在未选择节点时使用默认渲染器。问题是,尽管我为面板设置了适当的首选大小和最小大小,但JTree不会更新已编辑的行高。相反,当我使用与编辑器相同的面板时,它会正确呈现。谁能解释为什么会这样?是否有推荐的方法来实现类似于编辑的渲染调整大小行为?JTree是否提供了直接设置它的方法,或者是否有必要扩展JTree或(更糟糕的)L&F?注意:深入研究BasicTreeUI.startEditing(TreePathpath,MouseEventevent)方法后,我注意到以下代码行。他们似乎负责编辑调整大小:if(

java - 在调用设置文本后,JLabel 在旧文本上绘制新文本

我有一个进度对话框窗口,其中包含3个JComponents:JLabel、JProgressBar、JButton,它们在不同线程的应用程序的不同部分用作默认对话框窗口。因此,当我尝试更改标签的值时,它不会清除其下方的背景,它只是在旧文本上绘制新文本。包装类不会覆盖任何方法,它只是将方法调用委托(delegate)给它包含的组件。代码如下:publicvoidsetNote(Stringnote){this.note=note;SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){label.setText(ProgressD

java - 我需要做什么来用渐变绘画复制这个组件?

我试图复制这个组件(在帖子的底部),但我似乎无法让它看起来不错。所以我想知道,如何复制这种渐变颜料?或者,如果不是渐变涂料,我该怎么做才能获得类似的结果?与此组件相比,我的尝试结果是非常平坦的黑色。它还具有JFrame选项(关闭、最小化等),并且组件没有“圆形”外观。我正在寻找可以改进我所拥有的并解释我哪里出错的人。我知道我可以简单地使用已经制作好的外观,但我想让我的示例项目尽可能接近图像中的BitDefenderGUI,不包括文本。(如果需要我可以提供代码)另请注意,我跳过了背景和“病毒防护”、“自动扫描”、“我的BitDefender”面板之间的面板。我这样做主要是因为我想让我的S

java GridBagLayout anchor

学习GridBagLayout,这里的问题是,名称标签和组合框没有显示在面板顶部,但我已将其anchor设置为NORTH。为什么?importjava.awt.GridBagConstraints;importjava.awt.GridBagLayout;importjava.awt.GridLayout;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.WindowConstants;publi

java - 如何将 JPanel 中的组件左对齐?

我已经为基本的文本编辑器创建了一个布局,我希望顶部栏的按钮与左侧对齐,顶部栏是一个JPanel,它使用FlowLayout管理器。它位于使用GridBag布局管理器的网格内。有什么建议么?importjava.awt.*;importjavax.swing.*;publicclassGridTest{privatestaticJButtonfirstButton,secondButton,thirdButton;privatestaticJPanelpanel,sidebar,infoPanel;privatestaticJTextAreatextArea;publicstaticvo

java - JSeparator 不会与 GridBagLayout 一起显示

我想使用GridBagLayout在两个组件之间添加一个垂直的JSeparator。我的代码如下:publicMainWindowBody(){setLayout(newGridBagLayout());JPanelleftPanel=newInformationPanel();JPanelrightPanel=newGameSelectionPanel();JSeparatorsep=newJSeparator(JSeparator.VERTICAL);GridBagConstraintsgbc=newGridBagConstraints();gbc.gridx=0;gbc.grid

java - GridBagLayout 面板对齐

我对GridBag布局管理器有一个小问题。我正在尝试像这样显示9个面板:为此,我像这样分隔网格:对于面板1到7没有问题,它们显示如我所愿。但问题始于面板S8和S9。如您所见,S8和S9占据了一半的画面,但我无法让它像这样显示。S8结束于S4开始,S9开始于S4结束,我无法处理半空间。我想出的唯一方法是将S8和S9面板放在另一个占据所有框架宽度的面板中-但肯定必须有一种正确的显示方式这两个面板没有将它们放在另一个面板中!代码如下:workzone.setLayout(newGridBagLayout());GridBagConstraintsc=newGridBagConstraints