问题标签 [jcomponent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
580 浏览

java - 简单的自定义 Swing JComponent 总是扁平的

我只是在玩 Swing,并且正在开发一个非常简单的 Swing 组件。我有一个从JComponentclass 继承的组件,它的 UI 继承自ComponentUI. 该paint()方法如下所示:

但是完全不可能得到r.height大于 1 的另一个值。组件是给定的宽度,但高度总是只有一个点。有没有其他人使用过类似的组件?不幸的是,没有任何简单的教程。所有教程都是难以理解的复杂(或过时)。

似乎布局管理器将此组件的大小始终调整为 1 高度(无论最小值)。

0 投票
2 回答
2695 浏览

java - Java字体问题

假设我有一个 Swing JComponent,并为该 JComponent 的文本设置了一个字体。我构建项目并创建项目的 .jar 文件。现在,如果我从另一台没有安装字体的计算机上运行这个 jar 文件,会发生什么?jar 会自动安装字体还是我需要进行某种检查才能做到这一点?谢谢你。

0 投票
1 回答
516 浏览

java - 如何在 JComponent 中显示倒数计时器?

我想JLabelJComponent. 我知道计时器可以工作,但问题是我无法显示它。

有人可以帮我解决这个问题吗?

0 投票
2 回答
491 浏览

java - 创建一个边距编辑器组件,如 Microsoft Word 中的组件

我有一个 Java Swing 应用程序,我想在其中创建一个不错的组件,就像 Microsoft Word 中的组件一样。在 Microsoft Word 中,您可以更改文档的边距,如下所示: 在此处输入图像描述

这里的技巧是,如果您将顶部边距更改为(假设)1.5",那么预览图像将更改以显示这一点,因此线条将在图像中向下移动一点以显示边距的变化,以便用户可以感觉他的文档会受到这种变化的影响。例如,如果我将左边距更改为 (4.0"),图像将如下所示:

在此处输入图像描述

我所做的是创建 2 个图像一个空白页图像 + 另一个仅包含行的图像(行图像),例如这 2 个图像:

在此处输入图像描述 在此处输入图像描述

我将每个图像插入到 JLabel 中,现在当我更改 JSpinner 上边距值时,我保持“空白页”图像固定,但我更改了“线条图像”的边框以将其向下移动一点。该技巧适用于上边距,但如果我更改下/右/左边距,行为就会完全错误。

这是我在更改任何 JSpinner 值时应用的代码:

你能帮我继续这个工作吗?

0 投票
2 回答
4228 浏览

java - 如何在框架内调整大小和绘制组件

编写一个程序,用一个大椭圆填充窗口。即使调整了窗口大小,椭圆也应该接触窗口边界。

我有以下代码:

主要课程:

0 投票
1 回答
2811 浏览

swing - Gui - JPanel 将 JComponent 添加到 GridLayout 单元格中

我正在尝试使用 GridLayout 显示一个框架,但我的一个面板没有显示。

我遇到问题的JPanel(gridPanel)应该有一个50 x 50 GridLayout,并且该网格中的每个单元格都应该添加一个Square对象。然后该面板应该被添加到框架中,但它不显示。

方班

0 投票
4 回答
1264 浏览

java - JLabel.setText() 设置大小后不起作用

我有一个 JLabel 需要在按下按钮时动态更改。我正在使用 JLabel.setText(s)

但是,它不起作用。我试过了:

我觉得奇怪的是,当我不使用以下任何一种设置 JLabel 的大小时,它可以正常工作:

任何人都可以帮助我解决为什么在我设置了一个尺寸属性后它不起作用?

0 投票
2 回答
1357 浏览

java - 如何固定摆动组件的边界

我有一个JPanel我添加了一些组件(复选框,组合)。我注意到,当框架最大化时,组件的边界也会向右移动或移动。然后,在恢复时,组件将移回原始位置。

在 21 英寸及以上的显示器上,组件移动确实会产生影响,因为您可以看到组件移动到最右边。

我们正在使用实现的自定义布局管理器java.awt.LayoutManager2。类内容非常庞大,因此将指向确定组件边界的区域。

并从调用布局的框架中添加组件,如下所示:

在我们决定的时候x,我想添加一条线以防止在添加调用面板的框架最大化时组件移动。

任何人都可以就如何实现这一目标提出任何想法吗?示例代码将不胜感激。

0 投票
4 回答
5430 浏览

java - JPanel contentpane 混乱

我正在学习 Java Swing,并在框架上附加了一个 menuBar。默认情况下,这应该调用jframe.getContentPane().add(child). 当我运行脚本时,menuBar 没有出现。但是如果有意义的话,按钮位于最顶部的“y = 0”。

然后我意识到我的错误我实际上必须在菜单栏中放入一个菜单。然后菜单栏出现了。所以这让我想到......“菜单栏”“内容窗格”实际上是 2 个面板吗?这让我很困惑。因为这很像一个面板。但是getContentPane()返回一个容器,而不是一个 JPanel 对象,所以我很困惑。

如果是这样,这是否意味着唯一直接转储到框架中的只是 Jpanel 对象?因此 JButtons、JLabels 并不直接在一个框架中......这是否意味着 jpanels 是“嵌套的”?还有一件事让我感到困惑。如果 jpanel 可以控制事物的定位方式,那么 LayoutManager 有什么用?:S 谢谢,请像 2 岁的孩子一样回答,问为什么天空是蓝色的,哈 ;)

0 投票
1 回答
86 浏览

java - 在 Java 中重用组件没有正确修剪未重用的组件

我有一个javax.swing.JPanel被调用calcResPanel(使用java.awt.GridLayout带有1列和不定(0)行),它接收并显示一组BHSelectableLabels(扩展),它们共同表示存储在被调用javax.swing.JTextField的 s 列表中的文本。我想我不妨给它以下行为:Stringresults

  1. 第一次,它只会添加新的
  2. 以下时间,它将:
    1. results将尽可能多的已添加标签的文本更改为尽可能多的值的文本
    2. 如果还有未更改的标签,请删除它们,因为它们不是必需的。否则,根据需要添加尽可能多的新标签。

这对我来说很有意义。如果这个算法不是我应该做的,那么现在停止阅读并用更好的算法发布答案。但是,如果您同意,请告诉我我的代码做错了什么:

这段代码的问题是它不一致地在calcResPane. 如果您认为这个算法在概念上很好,那么请告诉我我的代码有什么问题导致它留下多余的标签?

回答


也是这么简单的回答。我觉得很聪明^^;