草庐IT

java - SwingUtilities.invokeLater 需要一个 Runnable 并在 EDT 上运行它?

我对SwingUtilities.invokeLater的签名感到困惑。它需要一个Runnable对象。是这个Runnable对象交给了EventDispatchThread吗?为什么我不能在EDT的run方法上直接调用createAndShowGUI(如果可能的话)?我有readarticles关于如何EDT和invokeLater工作,但我对传递的Runnable对象感到困惑。SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createAndShowGUI();}});如果我在调用之后再次调用SwingUtiliti

Java - 控制JPanels的Z顺序

简而言之,我的需求是在我的java应用程序中有一个背景图像,并且在某些情况下,在该图像之上创建一些其他图形。我想我会使用JPanel来绘制背景图像,在程序开始时将其添加到我的JFrame,然后在发生某些事件时在其之上添加其他JPanel。问题是Swing为首先添加的JPanel提供了最高的Z索引,所以我的背景应该显示在所有内容之上。有什么方法可以控制JPanel的Z索引/顺序,还是我这样做完全错了? 最佳答案 您可以使用setComponentZOrder()来处理应用程序中的Z顺序。资源:JavaDoc-Container.set

Java:光标如何自动从一个 TextField 移动到另一个

在我的应用程序中有四个TextArea,我只想在一个文本区域中输入四个字符,光标会自动移动到下一个TestArea。再次当我在此TextArea中输入四个字符时,光标再次自动移动到下一个TextArea。例子:在安装WindowXP时需要“Key”,有四个部分,当你在第一部分输入四个字符时,光标自动移动到下一个部分。我想在我的申请中做同样的事情。为此,我首先添加了CustomizedTextFields.jar,然后创建了四个IntegerField:privateIntegerFieldtext1;privateIntegerFieldtext2;privateIntegerFiel

java - 用鼠标在 Canvas 上画线 : Java awt

尝试使用鼠标在awtCanvas上绘制图形(现在是一条线)。我是第一次尝试java图形。所以不知道该怎么做。这是我的第一次尝试:packagedef.grafi;importjava.awt.Canvas;importjava.awt.Frame;importjava.awt.Graphics;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;im

java - 如何在AWT中查找按钮源(计算器作业)

我们被要求制作一个简单的GUI计算器,我使用getSource()来检测按钮,因为这是他们教我们的。它通过输入第一个和第二个值然后选择操作来工作,它起作用了。但是我犯了一个错误,因为他们希望我们做的是数字也应该是按钮,就像真正的计算器一样。那么如何使用getSource()获取每个按钮的值呢?就像当我按下按钮1和2等于3时。这是我所做的importjava.awt.*;importjava.awt.event.*;publicclassSimpleCalculatorimplementsActionListener{//containersprivateFramef;privatePa

java - JTable - 用于选择行的 ActionListener

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我的JTable需要正确的AcionListener。在程序启动时,默认情况下没有选择行。如果我现在选择此JTable中的任何行,则ActionListener将启动。

java - 新行\n 在 JButton.setText ("fnord\nfoo"中不起作用);

这个问题在这里已经有了答案:WordWrapinJButtons(4个答案)关闭7年前。在JButton上,我想在多行中列出信息。我尝试将\n作为换行符,但没有用。以下代码:JButton.setText("fnord\nfoo");将显示为:fnordfoo如何强制换行?

java - Java 中的自定义字体

如何解决Java中自定义字体的问题?例如,我的应用使用的字体并非在所有计算机上都可用。如果它在客户端计算机上不存在,我能否以某种方式将它包含在已编译的可执行文件中,然后从那里调用它?还有哪些其他选择?我可以将所有字体字符制作为图像(之前,在某些图形应用程序中),然后为每个字符显示图像...可以吗? 最佳答案 这是我用来从.ttf文件(可以捆绑)加载字体文件的实用方法:privatestaticfinalFontSERIF_FONT=newFont("serif",Font.PLAIN,24);privatestaticFontget

java - SunToolkit.awtLock : does code that takes such a lock needs to be called on the EDT

我正在调查死锁并在线程转储中看到以下内容atsun.awt.SunToolkit.awtLock(SunToolkit.java:229)atsun.awt.X11.XRobotPeer.setup(NativeMethod)-locked(ajava.lang.Classforsun.awt.X11.XRobotPeer)atsun.awt.X11.XRobotPeer.(XRobotPeer.java:24)atsun.awt.X11.XToolkit.createRobot(XToolkit.java:683)atjava.awt.Robot.init(Robot.java:11

java - 在 Java 中保存 FileDialog 去除初始文件扩展名

我正在使用java.awt.FileDialog创建一个用于保存文件的对话框。问题是,当我指定建议的(默认)文件名时,FileDialog会去除其扩展名。示例:importjava.awt.*;importjava.io.*;publicclassSaveFile{publicstaticvoidmain(String[]args){FileDialogfileDialog=newFileDialog(newFrame(),"Save",FileDialog.SAVE);fileDialog.setFilenameFilter(newFilenameFilter(){publicboo