Tag: jcomponent

用于Java swing的文件浏览器组件

有没有人遇到完全可定制的(兼容所有标准LnF),Java Swing的快速文件浏览器组件? 我应该能够将此组件放置到Netbeans UI调色板中,并在设计UI时拖放到任何JPanel。 它还应支持目录,单个文件,多个文件选择以及文件类型过滤。 必须有一些东西,因为我在jEdit等应用程序中看到了这一点。 请注意,我不是在询问像JFileChooser这样的对话框,而是询问浏览器/资源管理器/树视图组件。

JSplitPane精确分裂50%

在Swing中,最好的方法是让JSplitPane分割两个jpanel,每个jpanel的大小为50%。 看起来如果我没有在面板上设置首选尺寸,它总是使第一个面板几乎不可见(2%),第二个面板几乎不可见(98%) 提前致谢

为什么.paintComponent()是在JComponent上定义的?

很抱歉,如果我的问题没有适应Stackoverflow的要求,因为它是理论上但我不知道还能在哪里问。 在过去的几周里,我一直在努力更好地了解Swing API的工作原理以及它的组件,以便创建我自己的自定义组件。 我已经阅读了很多教程,在这里搜索,我在Java的摇摆源代码中非常深入,坦率地说……我的思绪很混乱。 据我所知,摆动组件由3部分组成: 模型:存储组件状态和数据的位置 UI委托:绘制组件和 JComponent:它将所有内容联系在一起。 在本教程https://docs.oracle.com/javase/tutorial/uiswing/painting/step2.html中有一段说明: paintComponent方法是进行所有自定义绘制的地方。 >此方法由javax.swing.JComponent定义,然后由>子类重写以提供其自定义行为 为什么JComponent上有paintComponent方法? 它不应该是UI委托的独家方法吗?

Java – 单击按钮后绘制圆圈

我试图用java中的按钮画一个圆圈。 我将System.out.println()放在action方法中以确保我的代码正常工作。 println显示但在任何地方都没有圆绘图。 有什么建议? 谢谢 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class CircleViewer { public static void main(String[] args) { CircleComponent circle = new CircleComponent(); JButton button = new JButton(“Draw”); final JPanel panel = new JPanel(); panel.add(button); JFrame frame = new JFrame(); class addActionListener implements ActionListener { public […]

JFrame – 使用JComponent和MouseListener单击鼠标

有2个class – public class MainClass { public static void main(String[] args) { JFrame frame = new JFrame(); …. Component mouseClick = new MyComponent() ; frame.setVisible(true); } public class MyComponent extends JComponent implements MouseListener { @Override public void mouseClicked(MouseEvent arg0) { System.out.println(“here was a click ! “); } … } 我试图在frame上设置一个鼠标单击的监听器,但是当我运行它然后按鼠标单击没有任何反应。 如何使其工作?

如何在向JFrame添加组件之间添加时间延迟?

我创建了一个JFrame,它包含一个JPanel。 我创建了许多JLabel。 我可以将JLabel添加到JPanel,并正确显示它们。 但我想实现它们,因为它们按顺序显示 ; 要显示的每个JLabel之间的时间延迟。 在搜索StackOverfLow之后,我尝试了一些代码,但它没有效果! 那么如何使用计时器通过设置时间延迟使组件(标签)一个接一个地显示。 我不希望修复我的代码,特别是在答案中。 只是 展示如何以延迟的方式显示任何类型的组件,每个组件在一段时间后显示。 就这些。 我提供了我的代码,以显示我努力解决问题。 首先,这是JLabel的子类使用:(没有问题) import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.BorderFactory; import javax.swing.JLabel; public class DLabel extends JLabel { Dimension size = new Dimension(70, 75); Font font = new Font(Font.SANS_SERIF, 12, 35); public DLabel(String t) { this.setPreferredSize(size); this.setBorder(BorderFactory.createBevelBorder(1, […]

在Java中创建矩形时,我实际上是否调用了paintComponent方法?

这是我当前的RectangleComponent类,我将它添加到我的主JFrame中的面板,但它永远不会出现。 我认为它不是绘图所以我决定在Rectangle的构造函数中调用paintComponent方法,并在通过4-5 nullPointerExceptions进行排序后,没有任何更改。 我已经阅读了有关如何绘制矩形的多个指南,并且我已经看到了多个代码示例,但我永远无法让面板与多个JComponent一起使用。 如果可以的话,请简要查看我的代码,看看你是否可以设计一个解决方案。 感谢您的时间。 还列出了我调用矩形构造函数的框架。 public class GameFrame extends JFrame { private SpellBarComponent bar; private JPanel mainPanel = new JPanel(); private JPanel buttonPanel = new JPanel(); private JPanel healthPanel = new JPanel(); Color green = new Color(29, 180, 29); Color red = new Color(255, 0, 0); private RectangleComponent life; private RectangleComponent death; private […]

如何在JTextPane中的组件周围包装文本?

我不明白JTextPane中的包装行为。 如果我插入一个短文本,然后是一个JComponent,然后再插入短文本,我可以在一行中看到插入的东西,如果框架足够大的话。 但是如果文本更长,所以需要几行,组件总是放在一个新行中。 我已经认识到,在将组件插入JTextPane后,其文本会变长一个字符。 因此,如果一个组件被JTextPane视为一个字符,为什么它不像一个字符呢? 可能它取决于Java版本? 我使用Java(TM)SE运行时环境(build 1.7.0-b147) 下面是我的代码(使用shortText / longText实例化变量currentText以重现上述行为): import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.SimpleAttributeSet; public class Test { public static void main(String[] args) { JFrame frame = new JFrame(); JTextPane textPane = new JTextPane(); textPane.setContentType(“text/html”); String shortText = “one two three four five six seven”; String […]

如何在Java Swing中获取面板的所有组件?

如何在Java Swing中获取面板的所有组件? 是否有像C#中的foreach这样的方法来处理JPanel的所有子组件?

Java按住按钮时移动对象

按住按钮时如何进行JPanel移动,按钮释放时如何停止。 我尝试过使用带有Runnable的thread.start()和类似的方法。 我总是遇到错误。 虽然有人可以帮助我吗?