-3

我正在学习 Java,我正在尝试做这个 settext 工作,但我没有得到

public static void main(String args[]) throws Exception
{
    try {
        (new Visual()).connect("COM4", "1");
        (new Visual()).connect("COM6", "2");
    } catch ( Exception e ) {
        e.printStackTrace();
    }
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Visual().setVisible(true);
        }
    });
}
void connect ( String portName, String linha ) throws Exception
{
    CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
    if ( portIdentifier.isCurrentlyOwned() )
    {
        System.out.println("Error: Port is currently in use");
    }
    else
    {
        CommPort commPort = portIdentifier.open(this.getClass().getName(),2000);

        if ( commPort instanceof SerialPort )
        {
            SerialPort serialPort = (SerialPort) commPort;
            serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);

            status_porta2.setText(portName);
            .....

        }
    }    
}

我正在搜索更改此功能中的标签文本,但不起作用..发生了什么?谢谢

4

1 回答 1

1

问题是,您正在创建 的多个实例Visual,其中两个打开连接,一个显示在屏幕上。

这些都没有任何联系,这意味着屏幕上的内容不是被管理/操作的内容。

相反,您用来连接端口的实例应该是您显示的实例...

例如...

public static void main(String args[]) throws Exception
{
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Visual v1 = new Visual();
                v1.connect("COM4", "1");
                v1.setVisible(true);

                Visual v2 = new Visual();
                v2.connect("COM6", "2");
                v2.setVisible(true);
            } catch ( Exception e ) {
                e.printStackTrace();
            }
        }
    });
}
于 2013-10-28T01:17:47.277 回答