草庐IT

java - Swing 自定义 GUI 组件

我需要创建一个自定义GUI组件,如下图所示。它上面有一些按钮和标签。我怎样才能这样创作 最佳答案 您可以使用JWindow,并使用Image作为背景图片。对于按钮,使用带有ImageIcon的JButton。 关于java-Swing自定义GUI组件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6981446/

java - 基于 TableCell 值的 JTable 行高亮器

据我所知,无法对我的纳瓦霍语进行编码如何将颜色交替/条纹化到JTable中(例如@camickr)importjava.awt.*;importjavax.swing.*;importjavax.swing.table.*;publicclassTableRowRenderingTipextendsJPanel{privatestaticfinallongserialVersionUID=1L;publicTableRowRenderingTip(){Object[]columnNames={"Type","Company","Shares","Price","Boolean"};Ob

java - 更改 Nimbus LaF 处理 JTree 节点突出显示的方式

我一直致力于将Java应用程序从WindowsLookAndFeel转换到Nimbus,尽管Nimbus存在缺陷,但在很大程度上取得了成功。我的用户总体上喜欢NimbusLaF,但不喜欢某些细节,其中一些细节我通过查阅本网站上的先前问题进行了更改。示例:我从WindowsLaF(他们喜欢)复制了LeafIcon、ClosedIcon和OpenIcon,并在Nimbus版本中使用它们,以获得LaF的完美组合。卡在最后一个(?)问题上。我有一个带有子类DefaultCellRenderer的JTree来创建适当的节点显示。这在WindowsLookAndFeel下工作正常。问题:在Wind

具有透明度的java全屏窗口

我正在尝试使用Java创建一个覆盖整个屏幕的全屏窗口。此窗口还必须具有一定的透明度(大约30%-50%的透明度)。当说整个屏幕时,我的意思是它涵盖了所有内容(包括OSX/Linux/Windows中的停靠栏/任务栏/菜单栏),而当我说透明度时,我的意思是实时透明度,而不仅仅是被黑的屏幕截图。这是我知道/尝试过的:使用Java全屏API:虽然它创建了一个真正的全屏,但您不能使用它来实现某些透明度(只有不透明的颜色)。一种hack是截取整个桌面的屏幕截图并将其设置为窗口的背景,但这意味着它不是实时透明的。设置窗口大小以匹配屏幕尺寸:当它填满整个屏幕时,在某些操作系统(例如MacOSX)中,

java - GridLayout 之上的 FlowLayout 不起作用

我正在尝试创建一个刽子手游戏,到目前为止它进展顺利,但布局设计似乎并没有落到实处!字母表应该以FlowLayout顺序结束在Hangman图片的顶部,底部有按钮“Restart”、“Help”、“AddNewWord”和“Exit”!我做错了什么?importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;publicclassHangmanextendsJFrame{inti=0;staticJPanelpanel;staticJPanelpanel2;staticJPanelpanel3;p

java - 将 ImageIcon 添加到 NetBeans 中的 jbutton 时出现空指针异常

使用NetBeans将ImageIcon添加到按钮属性。print.setFont(newjava.awt.Font("Serif",0,14));print.setIcon(newjavax.swing.ImageIcon(getClass().getResource("/project/print.gif")));print.setMnemonic('P');print.setText("Print");print.setToolTipText("Print");编译后显示Exceptioninthread"AWT-EventQueue-0"java.lang.NullPointe

java - 我可以在最大化时设置 JFrame 的正常大小吗?

目标:我想让一个框架在Frame.MAXIMIZED_BOTH状态下可见,但我也希望它有一个预定义的正常大小,这样当用户取消最大化它时,框架将调整大小为我想要的尺寸。我希望框架首先显示为最大化,没有视觉调整大小。我希望框架保持最大化直到用户取消最大化它。到目前为止我尝试过的事情:1)frame.setExtendedState(Frame.MAXIMIZED_BOTH);frame.setVisible(true);frame.setSize(500,500);评估:框架将切换到正常状态(不会保持最大化)=>不好。2)frame.setSize(500,500);frame.setEx

java - 如何删除 JFileChooser 上的 Ctrl+C 操作?

我在我自己的框架中的程序中嵌入了一个JFileChooser,框架中还有其他自定义组件。这是我的应用程序的设计,因为它可能有助于可视化我的问题:如果您看不出来,JFrame标题正下方的列表是JFileChoosers。这应该工作的方式是您将快捷方式分配给目的地,然后当您按下这些快捷键时,所选文件将移动到目的地。我这样做的策略是将快捷方式分配给整个框架的InputMap的javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW范围。但令人恼火的是某些东西(我假设是JFileChooser)一直在响应/吸收我不希望的按键。例如,如果我按Ctrl+C,我的快

java - 单击边框时 JComboBox 弹出窗口立即出现和隐藏(糟糕的用户体验)

当您有一个swingJComboBox并单击其边框时,弹出窗口会立即出现并消失。当我说单击时,我的意思是按下鼠标左键并立即松开。这可能被认为是糟糕的用户体验,因为没有用户会期望它发生。单击组合框的边框时,任何用户都会期望以下行为之一:要打开并保持打开状态的弹出窗口,或者根本不打开。肯定没有用户会期望弹出窗口立即打开和关闭。用户不是故意点击边框的。但是当组合框很小并且他试图快速点击它时,它可能会经常发生。在2000年,有人将此行为注册为openjdk站点中的错误:https://bugs.openjdk.java.net/browse/JDK-4346918他们已将其识别为一个错误,但通

java - 我必须在 Webstart 应用程序中显式调用 System.exit() 吗?

最近我将一个Swing应用程序转换为Webstart。这个过程非常简单,但我发现在我关闭所有窗口后,我的应用程序的JVM并没有终止。线程转储显示有几个非守护线程,特别是Swing的EDT、AWT和几个与websart相关的线程。实际使用的策略是每个窗口在创建时递增一个计数器,在关闭时递减一个。默认的关闭操作是DISPOSE_ON_CLOSE。当计数器达到零时,我停止所有线程池并释放所有JNI资源。当我从一个bat文件(相同的JAR)启动应用程序时,它在所有窗口关闭时正常终止,所以我认为问题与Webstart有关。现在问题:谁能告诉我到底发生了什么?为什么Webstart会留下僵尸JVM