Java新手遇setText()方法报错:java.awt.Button无此方法
嘿,我一眼就揪出问题所在啦!你碰到的cannot find symbol: method setText()报错,根源其实是导入了错误的Button类。
问题分析
你当前导入的是java.awt.Button(属于AWT旧版UI框架),而AWT的Button类压根没有setText()方法——这个方法是JavaFX专属的javafx.scene.control.Button才具备的。你明明在用JavaFX的Application框架搭建程序,却混用了AWT的组件,自然会出现API不匹配的错误。
修复步骤
- 替换错误的导入语句:删掉
import java.awt.*;,换成JavaFX Button的正确导入:import javafx.scene.control.Button; - 修正后的完整代码如下:
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.scene.control.Button; // 正确的JavaFX Button导入 public class Demo extends Application { Button button = new Button(); public static void main(String args[]) { launch(args); } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("This is a title"); button.setText("This is a button"); // 现在可以正常调用啦 StackPane stackPane = new StackPane(); stackPane.getChildren().add(button); Scene scene = new Scene(stackPane,400,400); primaryStage.setScene(scene); primaryStage.show(); } }
小提醒
JavaFX和AWT是完全独立的两个UI框架,别在同一个JavaFX应用里混用AWT组件哦,不然还会遇到更多类似的兼容性坑~
内容的提问来源于stack exchange,提问作者Godwin
相关产品推荐
相关产品推荐

