草庐IT

java - Event Dispatch Thread 究竟是什么时候启动的?

EDT究竟是什么时候开始的?哪一行代码负责?我的猜测是“someSwingComponent.setVisible(true)”可以解决问题,但我不确定。谢谢! 最佳答案 问:EDT究竟是什么时候开始的?哪一行代码负责[f]它?Swing的内部工作是特定于JVM的。不同的JVM根据不同的标准启动事件调度线程(EDT)。一般来说:TheEDTstartswhenitreceivesitsfirstAWTEvent.下面的堆栈跟踪再次证实了这一点。以下面的main方法为例。publicstaticvoidmain(String[]arg

Java GUI Swing 模型解释

我使用Swing已经有一段时间了,但是JFrame、paint()、super的整个模型/结构,等在我脑海里都是模糊的。我需要一个清晰的解释或链接来解释整个GUI系统是如何组织的。 最佳答案 我也是这样。实际上,直到今天我还没有100%完全了解它是如何工作的。Swing是一个非常灵活的框架——也许太灵活了。灵active带来了很多抽象,而抽象也带来了困惑。:)我发现以下文章值得一读。它们帮助我更好地了解Swing的全局。ASwingArchitectureOverviewTheprocessofinstallingaUIdelega

java - 如何防止单个列在 JTable 中被重新排序?

我有一个JTable,我需要能够对列重新排序。但是我希望第一列不能重新排序。我使用以下方法启用重新排序:table.getTableHeader().setReorderingAllowed(true);现在可以重新排序列,包括我不需要的第一列。有没有办法锁定第一列?我见过一些使用两个表的解决方案,第一列位于单独的表中,但也许有更好/更简单的方法。 最佳答案 这是我用来防止第一列被重新排序的解决方案privateintcolumnValue=-1;privateintcolumnNewValue=-1;tblResults.getC

java - 在 Java 中创建自定义监听器

我想知道如何为某物创建我自己的监听器,并能够像使用任何其他监听器一样使用它,例如。publicinterfaceListener{publicvoidonListen(Evente);}然后这个在我的课上publicclasstestimplementsListener{Object.add(newListener(){@OverridepublicvoidonListen(Evente){}});}我想我真正想问的是我在哪里定义如何检查是否发生了与我创建的监听器有关的事情?如果有任何不明白的地方,请告诉我,我会澄清的。如果充其量这对您来说毫无意义,我会试试这个。我将如何让监听器检查组

java - 是否可以将 JFrame 放在前面而不是焦点?

我正在编写一个定期弹出JFrame的Java应用程序(SwingGUI)。是否有可能以某种方式将窗口置于最前面(foo.setAlwaysOnTop(true)会更好)但没有使其成为焦点?有些人在打字时不时将眼睛从屏幕上移开看键盘,我敢肯定,如果这个窗口始终捕获键盘焦点,人们会非常恼火,因为这会导致他们迷失方向每次它弹出时都被忽视了很多次击键。在其他情况下,即使用户实际上能够在不一直看键盘的情况下打字,弹出窗口并获得焦点可能会导致弹出窗口本身执行不需要的操作(某些Tab+Enter组合,例如,用户不小心选择了一个她本来不会选择的选项)。提前致谢!更新正如Jonas所建议的,foo.se

java - CardLayout 与手动添加/删除 JPanel 有什么特别之处?

在StackOverflow上已经有很多次用户提出这样的问题......IhaveamainJPanelthatcontainsachildJPanel.Whentheuserclicksabutton,thechildJPanelshouldchangetoadifferentJPanel.HowcanIachievethis.很多时候,用户实际上已经尝试实现这个问题,但无法让它工作。每当我回答这个问题时,我都会告诉他们做这样的事情(简单地说)......JPanelmyFrame=newJPanel();myFrame.remove(oldPanel);myFrame.add(ne

java - 使用 html 制作 JEditorPane 将正确格式化的文本放入剪贴板

我有这段代码来演示问题:publicstaticvoidmain(String[]args){JFrameframe=newJFrame();frame.getContentPane().add(newJEditorPane("text/html","Hellocruelworld\nGoodbyecruelworld\n\nHelloagain\n"));frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.pack();frame.setLocationRelativeTo(null);frame.setVisible

java - 如何暂时禁用 Swing 中的事件监听器?

我有一个带有模型和View的Swing应用程序。在View(GUI)中有很多组件,每个组件都映射到模型对象的某些属性并显示它的值。现在有一些UI组件会在UI中的值发生变化时自动触发某些模型属性的更新。这需要我在UI中重新加载完整模型。这样我就进入了无限更新循环,因为UI中的每个模型重新加载都会触发另一个模型重新加载。我有一个指示加载过程的标志,我想用它来临时抑制监听器通知,同时从模型中设置UI字段。所以我的问题是:有没有办法在Swing中全局临时禁用某些组件的监听器,而无需删除并重新附加它们? 最佳答案 您可以为您的监听器使用一个公

java - 如何修改 JTextArea 中 Tab 键的行为?

我正在用JavaSwing创建一个表单,其中一个字段是JTextArea。当我在所有其他字段上使用Tab键时,它会将焦点放在下一个小部件上,但在JTextArea中,它会在文本。如何修改此行为? 最佳答案 /*Thisismyunderstandingofhowtabbingworks.ThefocusmanagerrecognizesthefollowingdefaultKeyStrokesfortabbing:forwards:TABorCtrl-TABbackwards:Shift-TABorCtrl-Shift-TABInt

java - 如何从文件选择器获取完整路径目录

我正在使用Netbeans7.1.2创建应用程序并且我正在使用文件选择器,但我不希望文件选择器获取文件,而是希望它返回当前目录的完整路径在.当用户点击此处打开时,我希望它返回完整路径而不是文件。我该怎么做? 最佳答案 JFileChooserchooser=newJFileChooser();chooser.setCurrentDirectory(newjava.io.File("."));chooser.setDialogTitle("choosertitle");chooser.setFileSelectionMode(JFil