我正在尝试用Java制作一个简单的2D游戏。到目前为止,我有一个JFrame,带有一个菜单栏,以及一个扩展JPanel并覆盖它的paint方法的类。现在,我需要启动一个游戏循环,我将在其中更新图像的位置等。但是,我坚持如何最好地实现这一目标。我是否应该使用多线程,因为如果你在主线程上放置一个无限循环,UI(以及我的菜单栏)肯定会卡住?到目前为止,这是我的代码:importjava.awt.Color;importjava.awt.Graphics;importjavax.swing.JPanel;@SuppressWarnings("serial")publicclassGameCan
我正在用Java编写一个简单的程序,其中包含一个KeyListener,其中覆盖了以下KeyTyped方法:@OverridepublicvoidkeyTyped(KeyEvente){intkey=e.getKeyCode();System.out.println("TEST");if(key==KeyEvent.VK_KP_LEFT||key==KeyEvent.VK_LEFT){System.out.println("LEFT");//Callsomefunction}elseif(key==KeyEvent.VK_KP_RIGHT||key==KeyEvent.VK_RIGHT
我基本上是在尝试模仿默认的windowsxp简单计算器。当我在Java中更改按钮的背景颜色时,它们看起来非常扁平且“无聊”。我想让按钮看起来尽可能接近WindowsXP计算器中的按钮。这是我的与WinXp的比较图:是否有某种方法可以用来更改按钮的样式,就像您在VisualBasic中所做的那样,使按钮几乎弹出更多或看起来像WindowsXp计算器的3D。Java中的默认按钮是我正在寻找的东西,除了不是白色,更多的是渐变中的蓝色。这可能吗,还是我坚持使用丑陋的按钮? 最佳答案 尝试在main方法的开头设置系统外观:UIManager.
扩展JFrame而不是创建新JFrame的优缺点是什么?例如:publicclassTestextendsJFrame{setVisible(true);}或publicclassTest{JFrametest=newJFrame():test.setVisible(true);} 最佳答案 你不应该扩展一个类,除非你真的想扩展它的功能,在你展示的例子中,你应该使用选项2,因为选项1是对extending的滥用功能。换句话说-只要问题的答案isTestaJFrame?是NO,它就不应该扩展JFrame.
我在JScrollPane中有一个JTable。我把它放在一个面板里。面板加载后,我希望JTable中的第一行获得焦点,但默认情况下焦点转到JScrollPane并在按下选项卡时焦点进入表的第一行。我不想使用setRowSelectionInterval(0,0)和setColumnSelectionInterval(0,0)因为我的要求与那个不同。 最佳答案 如果你想编辑你可以使用的单元格,jTable1.requestFocus();jTable1.editCellAt(row,column);否则你只想选择行,你可以使用,jT
如何在屏幕上绘制半透明矩形?这不能是JFrame,因为JFrames在右上角有通常的关闭、最小化、最大化选项。如果它确实是一个挥杆能手,它是如何凭空绘制的?不将它插入JFrame中吗?请告诉我它是什么以及如何实现它... 最佳答案 想到的直接想法是使用java.awt.Robot要捕获屏幕截图,请将其绘制到无框窗口。从那里你可以简单地在上面画一个矩形更新了示例...花了一些时间...publicclassSelectionRectangle{publicstaticvoidmain(String[]args){newSelectio
我正在学习Java的儿子(11岁)将输入一个问题和一些代码。他告诉我他无法在网站上找到这个问题的答案。您将阅读我对他的问题的编辑版本。非常感谢。我如何检测java中的按键,我的IDE叫做eclipse,我做了一些类。我在互联网的keyconfigofplayer中找到了代码并将其更改为扩展播放器类。我想要它,所以当我按住一个键时,一个矩形或椭圆形将在屏幕上移动,我该怎么做?出于某种原因,它不会正确键入代码,这就是为什么我的导入没有星号并且看起来很奇怪。对于那个很抱歉。请忽略它。我无法解决这个问题:(。这是我的代码:窗口代码:importjavax.swing.*;importjava.
我有一个带有长字符串的jTextArea。让我们假设:Stringstr="thisisatoooolongstring";现在我想在一次jTextArea中显示这个字符串。但是我的textArea在框架上的大小有限。所以,我无法看到整个字符串。例如,文本区域只显示:“这是一个”textarea可以避免隐藏字符自动引入'\n'吗?注意:我不想自动滚动。谢谢 最佳答案 JTextAreatextArea=newJTextArea("ThisisaneditableJTextArea."+"Atextareaisa\"plain\"te
我想检测JDateChooser中的日期何时更改字段,以便我可以更新另一个字段。这可能吗?如果是这样,我应该从哪里开始?我已经查看了文档,不幸的是没有方法可以添加ActionListener或StateChangeListener之类的东西(我的第一个想法)。 最佳答案 com.toedter.calendar.JCalendar从JComponent继承了一个listenerList并实现了java.beans.PropertyChangeListener。我会添加一个监听器,看看会发生什么。编辑:我认为您可以像JCalendar
我有一个简短的问题。我对Swing有了一点经验,最简单的方法是绘制一个相当大的GUI。作为GUI的一部分,我想要前进和后退按钮。我尝试采用的方法是实现将当前JPanel推送到堆栈并检索先前值(向前或反向(因此2个堆栈))的方法。我无法让它工作。也许我正在以完全错误的方式处理它,或者堆栈不能按照我使用它的方式使用。无论哪种情况,这都让我很烦恼。我想可能有更简单的方法,比如卡片布局,但我认为这种方法应该有效,这就是令人讨厌的地方。可能值得注意的是,我正在使用JFrame“基类”并根据屏幕更改中央JPanel。然而,导航栏作为“基类”的一部分是不变的这个“基类”的代码:publicclass