我知道它之前已发布过,但我无法取得任何成果,所以我正在寻求帮助。
我正在尝试将我的JFrame
类调用到将要设置Comm端口的主类。框架是使用Netbeans软件中的设计创建的。
我的问题是为什么我的主Java文件无法打开在另一个类中创建的框架?
以下是缩短的代码:
主要课程为SerialTest
package javaapplication1;
import javaapplication1.RCDA_JFrame;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.util.Enumeration;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SerialTest extends JFrame implements SerialPortEventListener {
public static void main(String[] args) throws Exception {
JFrame RCDA_JFrame = new JFrame();
RCDA_JFrame.setVisible(true);
}
}
我的GUI类是RCDA_JFrame
package javaapplication1;
import java.io.IOException;
//import java.io.OutputStream;
import javaapplication1.SerialTest;
public class RCDA_JFrame extends javax.swing.JFrame {
//private OutputStream SerialOut;
public RCDA_JFrame() {
initComponents();
}
public static void main(String args[]) {
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new RCDA_JFrame().setVisible(true);
}
});
}
}
答案 0 :(得分:1)
首先,只有一个类(GUI类)应该扩展JFrame。但是,这不会导致问题。其次,即使两个都扩展<div pseudo="-webkit-input-placeholder" style="display: none !important; text-overflow: clip;">First Name</div>
(通常意味着应该实例化一个),这两个类都不会被实例化。第三,在整个应用程序中,您应该只有一个JFrame
方法。第四,不完全确定GUI类中的main
方法正在做什么 - 为什么它创建一个RCDA_JFrame(我虽然Serial类应该根据标题问题这样做),为什么呢在单独的线程中执行此操作?最后,请确保您正在设置JFrame的大小(尽管您可能已经在main()
方法中执行此操作。)
以下是一些基本代码,可让您从其他类创建和访问自定义JFrame:
启动课程(这是主课程)
initComponents
CustomJFrame类(JFrame类)
public class Start{
private static CustomJFrame myFrame;
public static void main(String[] args){
myFrame = new CustomJFrame();
//you can edit myFrame's properties here.
}
}
经过测试并且工作正常。
答案 1 :(得分:0)
我建议做这样的事情。无需两种main
方法。
import javax.swing.*;
public class SerialTest{
public static void main(String[] args)
{
SwingUtilities.invokeLater(RCDA_JFrame::new);
}
}
这个
public class RCDA_JFrame extends JFrame {
public RCDA_JFrame() {
initComponents();
}
public void initComponents(){
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
}