Помогите разобраться, изучаю JavaFX, в книге с примерами есть пример по добавлению кнопок, но весь код разбит на части, после его изучения и сборки идея выдает ошибку с текстом Cannot resolve symbol 'ButtonBuilder', такой же случай с scane - в коде выделено так (** причина ошибки **) Сами кнопки созданы, обработчик событий прописан, в чем причина недогоняю, вот сам недокод
package sample;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Tooltip;
import javafx.scene.effect.BlendMode;
import javafx.scene.effect.DropShadow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Бухгалтерия");
primaryStage.setScene(new Scene(root, 700, 375));
Button btn;
btn = new Button();
btn.setLayoutX(20);
btn.setLayoutY(20);
btn.setText("Тестировать свойства");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("Свойства, унаследованные от класса Node:"+"\n"+
"Свойство blendMode: "+btn.blendModeProperty().getValue()+"\n"+
"Свойство boundsInLocal: "+btn.boundsInLocalProperty().getValue()+"\n");
}
});
Button btnON;
btnON = **ButtonBuilder**.create().build();
btnON.setLayoutX(20);
btnON.setLayoutY(150);
btnON.setText("Установить свойства");
btnON.setStyle("-fx-font: bold italic 12pt Arial;-fx-text-fill: #660000;
-fx-background-color: #ff99ff; -fx-border-width: 3px; -fx-border-radius: 30;
-fx-background-radius: 30;-fx-border-color: #660066;" );
btnON.setPrefSize(200,30);
btnON.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
btn.setBlendMode(BlendMode.DARKEN);
javafx.scene.shape.Circle clip=new javafx.scene.shape.Circle(75,53,80);
// btn.setClip(clip);
btn.setCursor(Cursor.CLOSED_HAND);
DropShadow effect=new DropShadow();
effect.setOffsetX(10);
effect.setOffsetY(10);
btn.setEffect(effect);
//btn.setManaged(false);
//btn.setMouseTransparent(true);
btn.setOpacity(0.5);
btn.setRotate(10);
btn.setLayoutX(80);
btn.setScaleX(1.8);
btn.setLayoutY(170);
btn.setTranslateZ(-50);
btn.setPrefSize(150,100);
btn.setTooltip(new Tooltip
("Это кнопка тестирования свойств класса Button"));
Image im=new Image(this.getClass().getResource("image.png").toString());
ImageView imv=new ImageView(im);
imv.setFitHeight(50);
imv.setFitWidth(50);
btn.setGraphic(imv);
btn.setStyle("-fx-font: bold italic 10pt Helvetica;");
//btn.setFont(Font.font("Helvetica", FontWeight.BOLD,
// FontPosture.ITALIC, 10));
btn.setAlignment(Pos.CENTER);
btn.setContentDisplay(ContentDisplay.RIGHT);
btn.setUnderline(true);
btn.setWrapText(true);
//btn.setCancelButton(true);
//btn.toBack();
}
});
root.getChildren().add(btnON);
root.getChildren().add(btn);
primaryStage.setScene(**scene**);
primaryStage.show();
}
public static void main(String[] args) {launch(args);
}
}
Возможно вам следует прочитать до конца главы (или убедиться в правильности набора данного кода), т.к. довольно таки странные вещи делаются в нем. В противном случае, если на этом пример закончен и вы все верно набрали, то осмелюсь поставить под сомнение данную книгу.
Добавление импорта решит проблему с ButtonBuilder
. На текущий момент является устаревшим, к использованию не рекомендуется. (уточните какую jdk вы используете и какую openJFX - в случае ее использования)
import javafx.scene.control.ButtonBuilder;
Строка Button btn;
должна быть заменена на final Button btn;
(это явная ошибка, и о ней должно быть написано, либо предложено исправить это самостоятельно)
Приведенная в коде строка primaryStage.setScene(scene);
в принципе лишена смысла, т.к.:
Что делать со следующими двумя строками подсказать не могу, т.к. недостаточно информации (что в sample.fxml
; имеется ли контроллер; если да, то как именно он описан). Но в чистом виде в этом коде использовать их нельзя:
root.getChildren().add(btnON);
root.getChildren().add(btn);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Возьмем просто андроид приложение : класс наследующий Activity в этом классе подключается layout и подписываемся на события от кнопокИ по определенному...
Есть метод, который описывает движение фигуры Слон на шахматной доскеПоследний Cell подсвечивается красным с ошибкой "Cell(int, int)' has private access in 'ru
Подскажите, мне надо перед текстом который находиться в li, путями css, поместить Icons(из font awesome)Как я понимаю надо через content, но когда вписываю...