用SwingWorker打开JDialog?

我有一个使用JPA的项目J2SE。 在一些JDialogs中,我返回getResultList()并在类的构造函数中填充JTable,JComboBox,JList等。 因此,当我为这些对话框创建任何实例时,有时会很慢。 我认为使用SwingWorker和JProgressbar并创建一个(加载)打开JDialogs是一个很好的解决方案,但我不知道该怎么做。 我正在尝试这个。 // JProgressbar progress = new JProgressBar(); //custommer dialog JDialog custommer = new JDialog(); //here slow because I have List and others lists custommer.setModal(true); private void openDialogs(JDialog dialog){ progress.setVisible(true); progress.setIndeterminate(true); SwingWorker sw = new SwingWorker(){ protected Object doInBackground(){ //opening dialog dialog.setVisible(true); return null; } } //after opened protected void done(){ progress.setVisible(false); […]

Java:除非手动刷新,否则无法从Process获取stdout数据

我正在用Java编写命令行程序的终端包装器,并使用ProcessBuilder生成子进程。 要将键e.getKeyChar()子e.getKeyChar() ,我只需将GUI中的e.getKeyChar()直接写入e.getKeyChar()给出的OutputStream 。 为了从子进程接收输出,我基本上有一个从子进程的stdout读取的while循环: while ((b = br.read()) != -1) { System.out.println(“Read “+b); bb[0] = (byte) b; // call an event listener with the read byte listener.dataReceived(bb); } 只有当我立即冲洗两端的输出时,这才有效。 也就是说,我必须刷新每个用户输入,并且子进程必须刷新自己的stdout才能发生这些事情。 否则, read()阻塞,等待数据,这些数据从未实际发送过(子进程’stdout只是保持缓冲)。 我怎样才能进行I / O操作? 示例终端子进程: #include int main() { char c; while((c = getchar()) != -1) { printf(“Got: %d\n”, c); // doesn’t work […]

在JPanel中嵌入VLCJ

我已经阅读了这个SO线程 ,当我尝试使用代码进行一些更改时,我只得到一个黑色窗口,有人可以告诉我这里我做错了什么,我只有一个主函数类: import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; import com.sun.jna.NativeLibrary; import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; import uk.co.caprica.vlcj.player.embedded.videosurface.CanvasVideoSurface; import uk.co.caprica.vlcj.runtime.windows.WindowsCanvas; public class Canvas_Demo { // Create a media player factory private MediaPlayerFactory mediaPlayerFactory; // Create a new media player instance for the run-time platform private EmbeddedMediaPlayer mediaPlayer; private JPanel panel; private WindowsCanvas canvas; private JFrame frame; //Constructor […]

如何在Java中转义“\”字符

众所周知,我们可以使用 string aa=@”E:\dev_workspace1\AccessCore\WebRoot\DataFile” 在c#中为了不加倍’\’。 但是在java中该怎么办?

从当前外部类对象实例化内部类对象

我想知道以下是否在Java中有效: class OuterClass { OuterClass(param1, param2) { …some initialization code… } void do { // Here is where the doubt lays OuterClass.InnerClass ic = this.new InnerClass(); } class InnerClass { } } 基本上我在这里想要实现的是从外部类的当前实例实例化内部类对象,而不是新实例,即当前实例。 我相信这很方便,因为外部类的构造函数不是空的(接受参数)而我们不知道传递给它们的是什么(它们不能为null,因为有些可能被分配给一个由内部类对象)。 如果我解释得很好,请告诉我。 提前致谢!

如何从代码中删除C风格的注释

我刚刚在这里读了一个新的问题,问我的标题基本上和我的一样。 这让我思考 – 并在网上搜索(当然,大多数点击指向SO)。 所以我认为 – 应该有一个简单的正则表达式能够从任何代码中删除C风格的注释。 是的,关于SO的问题/声明有答案,但是我发现的那些,都是不完整的和/或过于复杂的。 所以我开始尝试,并提出了一个适用于我能想象的所有类型代码的方法: (?:\/\/(?:\\\n|[^\n])*\n)|(?:\/\*(?:\n|\r|.)*?\*\/)|((“|’)(?:\\\\|\\\2|\\\n|[^\2])*?\2) 第一个替代检查双斜杠 //注释。 第二个是普通的/* comment */ 。 第三个是我在查找处理相同任务处理的其他正则表达式时遇到的问题 – 包含字符串之外的字符序列的字符串将被视为注释 。 这部分的作用是捕获捕获组1中的任何字符串,将捕获组2中的引号与引号匹配,直到字符串的结尾。 捕获组1应该保留在替换中,一切都被丢弃(替换为”” )留下未注释的代码:)。 这是regex101的C示例。 好的……所以这不是问题。 这是你认为的答案…… 你是对的。 那么……关于这个问题。 我错过了这个正则表达式错过的任何类型的代码吗? 它处理 多行评论 /* an easy one */ “行尾”评论 // Remove this 字符串中的注释 char array[] = “Following isn’t a comment // because it’s in a string /* […]

图像在重绘时闪烁()

我找到了上一个问题的解决方案,这让我陷入了新的问题。 在下面的代码中,我使用箭头键在JFrame周围移动图像。 但是每次按下箭头键,图像看起来都会闪烁,这在连续按下按键时非常明显。 import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; public class TestProgram extends JFrame implements KeyListener { private BufferedImage TestImage; private int cordX = 100; private int cordY = 100; public TestProgram() { setTitle(“Testing….”); setSize(500, 500); imageLoader(); setVisible(true); } public void imageLoader() { try { String testPath […]

当提供者是gps时,返回的位置为空?

我试图在下面的代码中检索我当前的位置坐标 LocationManager locationManager= (LocationManager) getSystemService(context); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); provider = locationManager.getBestProvider(criteria, true); Location location = locationManager.getLastKnownLocation(provider); 当提供者是“ 网络 ”时,我得到位置坐标。 当我更改位置和安全选项中的设置以启用“ 使用GPS卫星 ”选项时,提供程序将更改为“ gps ”。 在这种情况下,返回的位置为null。 可能是什么原因以及如何纠正?

如何在jsp(struts)中打印会话属性

这是我有的: Java类(添加用户): public String addUser() throws NoSuchAlgorithmException { HttpSession currentSession = request.getSession(); User u = new User(); u.setUname(getUserName()); u.setPassword(StringHash(getUserPass())); u.setUtype(getUserType()); plResponse = iUserDAO.addUser(u); setActionMessage(plResponse.getMessage()); currentSession.setAttribute(“actionMessage”, this.actionMessage); return SUCCESS; } Java类(添加关联): public String saveAssoc() throws Exception { HttpSession currentSession = request.getSession(); try { plResponse = iUserDAO.saveUserAssoc(currentSession.getAttribute(“selectedUser”).toString(), countryId, langId); refreshUserAssociations(); setActionMessage(plResponse.getMessage()); currentSession.setAttribute(“actionMessage”, this.actionMessage); } catch (Exception e) […]

如何让Netbeans 9在Tomcat上部署有效的webapp

我有一个正在运行的Tomcat实例; Tomcat 9.0.10 OpenJDK 10.0.2 我有一个在库JDK1.8上编译的工作Netbeans 8.2项目,它可以在上面的服务器上构建和部署并运行。 我现在正试图转向Netbeans 9,所以我在OpenJDK 10.0.2 JDK上运行。 如果我构建相同的项目(仍然在库JDK1.8上),它构建和部署正常。 但是,当它在同一台服务器上运行时,我收到以下错误; javax.servlet.ServletException: Error instantiating servlet class [xxxx.xxx.xxx.TestServlet] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:844) Root Cause java.lang.RuntimeException: xxxx.xxx.xxx.TestServlet.(TestServlet.java:1) java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:844) Note […]