当使用for循环将菜单项添加到“连接”菜单时,InteliJ IDEA出现以下错误:
我认为这是由于某种命名冲突引起的。对Java来说还很陌生,所以不能肯定。
这是我的FXML文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="kuristo.Controller"
prefHeight="400.0" prefWidth="600.0">
<MenuBar>
<Menu text="File">
<MenuItem text="Quit" />
</Menu>
<Menu text="Connection" fx:id="menuConnection"></Menu>
</MenuBar>
</VBox>
因此,您可以在此文件中看到一个ID为menuConnection的Menu。我将其用作标识希望在此控制器中添加MenuItem的菜单的方法:
package kuristo;
import com.fazecast.jSerialComm.SerialPort;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import java.awt.*;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
public class Controller implements Initializable {
@FXML
private Menu menuConnection;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
for (int i = 0; i < SerialPort.getCommPorts().length; i++) {
// String portName = "portName".concat(String.valueOf(i));
MenuItem port = new MenuItem(SerialPort.getCommPorts()[i].getSystemPortName());
menuConnection.add(port);
}
}
}
我无法编译它。任何帮助将不胜感激。
干杯
答案 0 :(得分:1)
事实证明...
我的进口不正确。
import java.awt.*;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
更改为:
import com.fazecast.jSerialComm.SerialPort;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import java.net.URL;
import java.util.ResourceBundle;
故事的寓意,请确保您使用的是JavaFX而不是AWT。