Tag: swing

使用getGraphics()绘制对象而不扩展JFrame

我如何绘制一个没有类的对象(它扩展了JFrame )? 我find了getGraphics方法,但它不绘制对象。 import javax.swing.*; import java.awt.*; public class Main { public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setSize(600, 400); JPanel panel = new JPanel(); frame.add(panel); Graphics g = panel.getGraphics(); g.setColor(Color.BLUE); g.fillRect(0, 0, 100, 100); } }

如何绘制代表连接节点图的树?

我想在Java GUI中显示一棵树,但我不知道如何。 树代表连接节点的graphics,如下所示: 我应该说,我有我自己的树类: public class BinaryTree { private BinaryNode root; public BinaryTree( ) { root = null; } public BinaryTree( Object rootItem ) { root = new BinaryNode( rootItem, null, null ); } public BinaryTree( Object rootItem,BinaryNode a,BinaryNode b ) { root = new BinaryNode( rootItem, a, b ); } public int leavesCount(){ return […]

JTable与JPopupMenu

我怎样才能防止触发和显示JPopupMenu只有当Mouse Cursor在选定JTable'Row 我的问题:如果有另一种方式作为getBounds从选定的行,并确定/比较与Mouse位置… 我简单的sscce展示了不需要的相反的状态,任何行都可以被选中, JPopupMenu从整个JTable被触发 import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public class TableCheckBox extends JFrame { private static final long serialVersionUID = 1L; private JTable table; public TableCheckBox() { Object[] columnNames = {"Type", "Company", "Shares", "Price", "Boolean"}; Object[][] data = { {"Buy", "IBM", new Integer(1000), new Double(80.50), false}, {"Sell", "MicroSoft", new Integer(2000), new Double(6.25), […]

Swing的KeyListener和多个按键同时按下

当两个键盘按键同时按下时,是否有任何常规方式跟踪事件? 我有几个想法,例如记住键和事件生成时间,以便我们可以在连续的事件处理程序调用中检查这两个事件之间的时间差异,并决定是否是双键事件。 但它看起来像一个kludge。

构build不在事件派发线程上的Swing / AWT小部件是否安全?

我已经将物质的外观和感觉整合到了我的应用程序中,并遇到了有关它的内部EDT(Event Dispatch Thread)检查例程的几个问题。 物质绝对拒绝在EDT之外构buildUI类。 我已经做了很多Swing / AWT,并且我知道关于EDT的大部分规则。 我使用SwingWorker,SwingUtilties.invokeLater来修改组件。 我总是认为这些组件可以在EDT之外构build ,但是必须在EDT上实现和操纵 。 换句话说,您可以在后台构造和设置默认值,但是对pack / setVisible的调用必须是EDT以及任何后续调用组件的调用。 我问的原因是,我有一个特别“结实”的窗口来构build,涉及到许多小部件,状态和资源(很多图标)。 之前,我在SwingWorker的背景方法上构build了窗口,并使窗口在done方法中可见。 从来没有一个单一的问题。 切换到物质后,内部的EDT检查咬我。 我已经能够重构代码来解决这个问题。 我可以在EDT上构build这个不好的解决scheme,因为整个应用程序都会阻塞。 我还可以重构更多的东西,并尽我所能加载EDT以外的所有额外资源。 包装它… 构build Swing / AWT小部件不是在事件派发线程安全吗?

如何在jPanel中绘制? (swing / graphics Java)

我正在制作一个项目,我正在试图制作一个绘画程序。 到目前为止,我已经使用netbeans来创build一个GUI并设置程序。 到目前为止,我可以调用所有必要的协调来绘制它,但是我很困惑如何真正地在里面绘画。 在我的代码的最后,我有一个失败的尝试在面板内绘图。 任何人都可以解释/显示如何在这样的例子中使用graphics? 我find的所有示例都使用JPanel创build了一个类并将其扩展,但是我不知道是否可以这样做,因为它是在netbeans中生成的。 我需要在JFrame内部绘制一个JPanel 。 我不知道把graphics类放在哪里。 JavaPaintUI类 package javapaint; import java.awt.*; import javax.swing.*; public class JavaPaintUI extends javax.swing.JFrame { public JavaPaintUI() { initComponents(); } private void initComponents() { jPanel2 = new javax.swing.JPanel(); jPanel2.setBackground(new java.awt.Color(255, 255, 255)); jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jPanel2.addMouseListener(new java.awt.event.MouseAdapter() { public void mousePressed(java.awt.event.MouseEvent evt) { jPanel2MousePressed(evt); } public void mouseReleased(java.awt.event.MouseEvent evt) { […]

JOptionPane.showInputDialog中的多个input

有没有办法在JOptionPane.showInputDialog创build多个input,而不是只有一个input?

为什么大多数UI框架是单线程的?

例如,Java Swing和Android UI都使用单线程模型,其中单个UI线程负责更新所有UI。 是什么让框架devise师select了另一个线程模型呢? multithreadingUI模型可能会给你更多的性能,尽pipe代价是更复杂吗? 我意识到后者是一个大问题,因为线程相关的错误是讨厌的,但我想知道除了简单之外,是否还有单线程模型的其他优点?

为什么在添加组件之前我不应该调用setVisible(true)?

我已经看过在这个站点上写了很多次(比如这里和这里 ),在向JComponent添加组件之前,你不能调用setVisible(true) ,但是我还没有看到解释和信息互联网似乎稀缺。 为什么会出现这种情况,如果违反规则会发生什么?

我可以有一个JMenuBar JTabbedPane?

我正在尝试增加可用于标签内容的空间量。 我怎样才能把一个菜单栏,或等效,旁边的选项卡列表? (最好在标签的左边,图像的对面)