Tag: swing

Javafx:javafx.concurent和Platform.runLater之间的区别?

我很好奇javafx.concurent和Platform.runLater之间在multithreadingJavaFx编程方面究竟有什么区别。 这是否意味着使用javafx.concurrent,我们可以拥有多个实际的绘图线程,或者它们最终都会在一个线程上结束? 我喜欢的一件事是使用JavafX并同时摆动,因为它们都使用了2个不同的绘图线程。 我会使用swing来处理繁重的内容(例如打开FileChooser)并使用JavaFX作为核心可视化内容,例如播放无缝的循环video。 然而,由于无头的exception错误,mac使得这一切变得不可能,所以一切都落在javafx上,这意味着在打开文件追踪器等事情时会有很多停顿。 如果我使用javafx.concurrent重写我的应用程序,我是否可以像使用Swing + JavaFX那样模仿2绘制线程体验?

如何处理摆动中图像显示的错误文件选择

我正在学习Swing并编写了一个应用程序,允许用户选择一个图像文件并将其显示在JPanel 。 它有效,但我想处理时的情况 用户不选择任何文件 用户选择非图像文件 在这些情况下,我想清除JPanel并在文本区域显示错误消息。 我尝试这样做如下。但我不确定这是否是正确的方法。我想你的建议。 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; class Display extends JFrame { private MyImagePanel canvas; private JButton okbutton; private JTextArea result; private JFileChooser filechooser; private static Insets insets = new Insets(0, 0, 0, 0); public Display(String name) { super(name); […]

调用mouseClicked()后JComponents消失

我正在用Swing编写Java GUI程序。 界面如下所示: 当用户点击右侧的其中一张图片时,我希望它的小预览显示在左上角的橙色区域中。 我通过SwingWorker线程从计算机上的目录中提取所有图像文件。 在SwingWorker的done()方法中 ,我向每个对象添加一个mouseClicked侦听器(来自我创建的类的TaggableImage对象。它具有BufferedImage并扩展JComponent,覆盖paintComponent()方法)。 在mouseClicked监听器中,我调用橙色面板的add()方法并将其传递给TaggableImage。 我的问题: 当我点击其中一个图像时,它不会被添加到橙色面板,它会从右侧的面板中消失。 如果我单击所有图像,我将留下一个空白的右侧面板。 为什么会这样? 这是我的整个SwingWorker线程: SwingWorker<ArrayList, Void> loadImagesAsyncWorker = new SwingWorker<ArrayList, Void>() { ArrayList img_list = new ArrayList(); @Override protected ArrayList doInBackground() throws Exception { File currentDirectory = new File(“.”); getFileInDirectory(currentDirectory); return null; } // recursively get all files in this directory and child directories private void […]

检测JTextField“取消选择”事件

是否有某种方法可以检测是否取消选择了JTextField,即选择了字段WAS,但现在您已经选择了其他内容。 我之所以这样做,是因为我想在用户表单中检查任何非法字符,然后再尝试提交数据。 如果有一些更容易的方法,而不是我试图解决它的方式,我会很乐意接受启蒙。

Java矩形碰撞检测混淆

我使用Bucky的光滑Java教程做了一个简单的2D状态改变游戏,我修改了这个游戏,现在想在地图上设置碰撞,这样我的玩家就无法通过地图上的房子。 我想我对碰撞的工作方式有所了解: 使用以下代码制作2个矩形: public Rectangle getBounds() { return new Rectangle(x, y, width, height); } 1为播放器,1为障碍物,我如何将其放入我的代码中?如何告诉java障碍物的矩形与播放器矩形不同? 然后在制作了2个矩形后,我会设置一个if语句,说如果相交就行了…… 希望在此之后,我认为它会起作用。 关于游戏的一些更多信息,它是一个状态改变游戏,它有一些方法,如init,渲染和更新的方法(我在哪里放置我的矩形和if语句,在更新方法中?),它还是一个顶上视图游戏有点像口袋妖怪,如果这有帮助。 如果您需要我的代码,请询问,我现在不想让它过度拥挤这篇文章。 EDIT1: package javagame; import org.newdawn.slick.*; import org.newdawn.slick.state.*; public class Play extends BasicGameState{ Animation bucky, movingUp, movingDown, movingLeft, movingRight, movingBL, movingBR, movingFL, movingFR; Image worldMap; boolean quit = false;//gives user to quit the game int[] duration = […]

如何从JTable中删除一行?

我想从JTable中删除一些行。 我该怎么做?

如何正确对齐此文本?

我今天写了这个极地时钟,我几乎完成了我想要将我的文字对齐在类似于此的行内。 有谁知道如何做到这一点? 我曾尝试使用FontRenderContext和字体指标,但我似乎无法让它工作。 这是完整的源代码,因此您可以编译它并自己查看。 import java.applet.Applet; import java.awt.AWTEvent; import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.Toolkit; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Point2D; import java.awt.image.BufferedImage; import java.awt.image.WritableRaster; import java.util.Calendar; import java.util.TimeZone; public class Clock extends Applet implements Runnable { int[][] colorsInt = {{20,20,20},{100,100,50},{50,100,100},{10,170,50},{79,29,245},{24,69,234},{253,24,103}}; Color[] […]

图像resize并在JPanel或JLabel中显示而不会降低质量

我正在开发一个java程序,以便在注册时使用网络摄像头捕获员工图像。 我可以毫无问题地获得图片,并将其保存在我的C:驱动器中,但在检索图像时,只有部分图像显示在标签上。 有没有办法在保存之前重新调整JPEG大小? 还是在显示之前? 喜欢缩小它没有质量损失…. 非常感谢Cheerz! :)! 好的伙计……这里说: – 我已经按照我使用它们的方式对代码进行了评论。 //This method will capture the image from the interface and save it under the unique employee ID public String captureImage(int picId){ FrameGrabbingControl ControlFG = (FrameGrabbingControl) broadcast.getControl(“javax.media.control.FrameGrabbingControl”); Buffer buffer = ControlFG.grabFrame(); BufferToImage image = new BufferToImage((VideoFormat)buffer.getFormat()); img = image.createImage(buffer); path=”c:\\employee”+picId+”.jpg”; saveJPG(img,path);//method will save the image return […]

使用数据库数据填充jTable

我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在我的Account.java类中使用以下代码: public DefaultTableModel getData() { try { String stmt = “SELECT * FROM APP.DATAVAULT”; PreparedStatement ps = Main.getPreparedStatement(stmt); ResultSet rs = ps.executeQuery(); ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount(); Vector columns = new Vector(columnCount); //store column names for (int i = 1; i <= columnCount; i++) { columns.add(md.getColumnName(i)); } Vector data […]

如何将注意力集中在JTextField上?

我让我的游戏没有鼠标运行所以使用指针不是一个选择。 当玩家输球时,高分菜单会显示。 这是我的代码 highScore=new MyTextField(“Your Name”); highScore.addKeyListener(this); highScore.setFont(font); highScore.requestFocusInWindow(); 我努力了 highScore.setFocusable(true); highScore.requestFocusInWindow(); highScore.requestFocus(true); highScore.requestFocus(); 但仍然没有把注意力集中在我的JTextField 。 如何关注它?