Tag: swing

我可以在标签内有文本框吗?

我想要做的是在表单中显示以下内容: Open [15] minutes before class 其中[15]是一个文本字段。 这可能吗?

为什么JOptionPane中的JScrollPane没有显示所有的内容?

我试图添加组件到一个JPanel,然后把这个面板到一个JScrollPane,然后把JScrollPane放在JOptionPane中。 问题是:只添加了19行组件。 有一个确定组件行数的for循环,如果将条件计数器更改为19或更less,则将显示所有组件的行数。 这是问题的SSCCE import java.awt.Dimension; import javax.swing.GroupLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.SwingConstants; public class DynamicGroupLayout extends JPanel { JButton addRecordButton; JTextField[] FieldsArray; JLabel[] LabelsArray; GroupLayout layout; JScrollPane scrollPane; public DynamicGroupLayout() { addRecordButton = new JButton("add record"); layout = new GroupLayout(this); this.setLayout(layout); layout.setAutoCreateGaps(true); layout.setAutoCreateContainerGaps(true); scrollPane = […]

我如何使我的SwingWorker示例正常工作?

我已经创build了自己的SwingWorker示例来熟悉它的工作原理。 我想要做的是以下几点:当button被点击时,我想要一个进度条出现,直到任务完成我只想删除进度条,并添加一个string到对话框。 点击button时,进度条出现,但永远不会消失。 (从不删除进度条10秒后,永远不会放置标签) 这是一个SSCCE: package swingtesting; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JProgressBar; import javax.swing.SwingWorker; public class SwingTesting { /** * Creates a frame that will hold a simple button to make use of SwingWorker */ public static void main(String[] args) { // TODO code application logic […]

我怎样才能改变JTabbedPane选项卡的形状?

我正在尝试更改JTabbedPane选项卡的形状。 使用setTabComponentAt(0, someComponent); 不会更改选项卡的外观,即具有对angular左上angular的矩形。 可以做些什么来改变形状?

使用带有Swing GUI类和侦听器的JFileChooser

这是我目前的菜单: public class DrawPolygons { public static void main (String[] args) throws FileNotFoundException { /** * Menu – file reader option */ JMenuBar menuBar; JMenu menu; JMenuItem menuItem; // Create the menu bar. menuBar = new JMenuBar(); // Build the first menu. menu = new JMenu("File"); menu.setMnemonic(KeyEvent.VK_F); menu.getAccessibleContext().setAccessibleDescription("I have items"); menuBar.add(menu); // a group of […]

听众之一适合可见性的JPanel被改变

AncestorListener , ComponentListener或HierarchyListener监听JPanel和JComponents更改的可见性是否存在一些规则或好的/不好的体验? 他们中的一个比其他人更好还是更安全? 我特别想知道何时以及如何隐藏JPanel / JComponent 。 注意下面的代码包含不正确的Swing规则,比如在这种情况下使用Thread.sleep(int) ,以允许我在Swing GUI中打印正确的Listeners顺序 import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; public class CardlayoutTest extends JFrame { private static final long serialVersionUID = 1L; public CardLayout card = new CardLayout(); public CardlayoutTest() { […]

paintComponent如何工作?

这可能是一个很小的问题。 我刚刚开始学习Java 我不明白paintComponent方法的操作。 我知道如果我想绘制的东西,我必须重写paintComponent方法。 public void paintComponent(Graphics g) { … } 但是什么时候叫? 我从来没有看到任何像“object.paintComponent(g)”,但它仍然是在程序运行时绘制的。 什么是graphics参数? 这个从哪里来? 调用方法时必须提供参数。 但正如我之前所说,似乎这种方法从来没有被明确地称为。 那么谁提供这个参数? 为什么我们必须将其投射到Graphics2D? public void paintComponent(Graphics g) { … Graphics2D g2= (Graphics2D) g; … }

SwingUtilities.invokeLater()为什么需要它?

为什么有必要在SwingUtilities.invokeLater()放置GUI更新代码? 为什么不能由Swing自己照顾呢? 为什么调用者不得不关心swing如何处理UI更新?

听众安置坚持传统的(非中介)MVC模式

我正在Swing中实现一个程序,并且我已经读过了Nirmal在Swing中实现这个模式 ,这似乎对整个“职责分离”概念有一个相当优雅的处理。 但是,由于我正在开发比由Nirml发布的更复杂的程序,而Nirml由单个JFrame容器组成,所以我正在寻找如何正确实现MVC的指导。 我的程序将由子容器等组成。 我很好奇,如何控制器应该如何实现的逻辑背后的定义和assigining所有的监听器的视图..或者如果控制器定义每个单一的视图组件的监听器是实际的? 看起来我需要在View的顶级容器中使用一个方法来允许Controller调用视图来向所讨论的组件添加一个Listener? 所以我需要一个方法链,每个方法将顶层容器中的侦听器传递给持有组件的直接容器。最后,容器调用addActionListener()。 这是正确的方式来处理MVC中的监听器? 在MVC中必须定义Controller中View的每个组件的所有监听器,还是一个有用的练习? 这也意味着我在顶级容器(View)中创build了方法,使Controller可以将侦听器分配给子容器中的每个组件。

Eclipse WindowBuilder,重叠JPanels

我试图重叠JPanel实例。 将面板直接放在另一个面板上,位置和尺寸完全相同。 每次我这样做,它将另一面板移动到另一面或下面,前一面板是另一个更大的面板,并在其中有button。 我将如何做到这一点? 请记住,它使用的是窗口生成器工具。