我有一个密码。它有错误,我想知道如何解决错误。该错误对应于以下行:public void start(Stage primaryStage)
代码如下:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.control.Label;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.Scene;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class DescriptionPane extends BorderPane{
/** Label for displaying an image and a title */
private Label lblImageTitle = new Label();
/** Text area for displaying text */
private TextArea taDescription = new TextArea();
public DescriptionPane() {
// Center the icon and text and place the text under the icon
lblImageTitle.setContentDisplay(ContentDisplay.TOP);
lblImageTitle.setPrefSize(200, 100);
// Set the font in the label and the text field
lblImageTitle.setFont(new Font("SansSerif", 16));
taDescription.setFont(new Font("Serif", 14));
taDescription.setWrapText(true);
taDescription.setEditable(false);
// Create a scroll pane to hold the text area
ScrollPane scrollPane = new ScrollPane(taDescription);
// Place label and scroll pane in the border pane
setLeft(lblImageTitle);
setCenter(scrollPane);
setPadding(new Insets(5, 5, 5, 5));
}
/** Set the title */
public void setTitle(String title) {
lblImageTitle.setText(title);
}
/** Set the image view */
public void setImageView(ImageView icon) {
lblImageTitle.setGraphic(icon);
}
/** Set the text description */
public void setDescription(String text ) {
taDescription.setText(text);
}
@Override
public void start(Stage primaryStage) {
Scene scene = new Scene(taDescription, 400, 200);
primaryStage.setTitle("RadioButtonDemo");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
}
}
我也将错误粘贴在这里。错误显示如下。谁能帮我解决问题。非常感谢!
线程“ main”中的异常java.lang.RuntimeException:错误:类DescriptionPane不是javafx.application.Application的子类 在javafx.graphics/javafx.application.Application.launch(未知来源) 在DescriptionPane.main(DescriptionPane.java:69)
答案 0 :(得分:0)
代码似乎有缺陷。开始方法的实现与setLeft-,setCenter-和setPadding-method的调用相互排斥。最后三个方法属于BorderPane类,因此需要将此类作为基类。另一方面,BorderPane类没有可以被覆盖的启动方法。
由于这是JavaFX应用程序,因此实现开始方法的类必须从Application类中派生,因为注释中已经对此进行了说明。
假设这是一个JavaFX项目,解决此问题的最简单方法是:创建一个新的公共类,例如Main,扩展了Application类。在此类中复制您的开始方法和主要方法。在复制的开始方法中,也将“场景场景=新场景( taDescription ,400,200)”替换为“场景场景=新场景( new DescriptionPane(),400) ,200)”。从您的DescriptionPane类中删除开始方法和主要方法。