Что-то не так при импорте банок в JavaFx scene builder [duplicate]

Идиома Python для этого - newList = oldList[:]

5
задан Will 2 September 2014 в 05:48
поделиться

1 ответ

Для этого вам не нужен файл .jar. Вы можете просто создать новый файл FXML с тем, что вам нужно. поле со списком. Создайте файл класса с расширением поля со списком, контроллером и добавьте контроллер в файл FXML (в построителе сцен).

Найдите «Импорт из файла JAR / FXML» в поле со списком рядом с левым окном поиска в построителе сцен, а затем выберите файл. Теперь у вас есть новая панель заголовка в левом аккордеоне с именем Custom. Здесь вы можете найти свои компоненты.

@edit Есть файлы.

MyGridPane.fxml

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<fx:root type="javafx.scene.layout.GridPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0"  xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="MyGridPane.MyGridPaneController">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
  </rowConstraints>
</fx:root>

MyGridPane.java

package MyGridPane;

import javafx.fxml.FXMLLoader;
import java.io.IOException;

/**
 * Created by Marcin on 2014-09-01.
 */
public class MyGridPane {
    MyGridPane(){
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MyGridPane.fxml"));
        fxmlLoader.setRoot(this); fxmlLoader.setController(this);
        try {
            fxmlLoader.load();
        } catch (IOException exception) {
            throw new RuntimeException(exception);
        }
    }
}

MyGridPaneController.java

package MyGridPane;

import javafx.fxml.Initializable;

import java.net.URL;
import java.util.ResourceBundle;

/**
 * Created by Marcin on 2014-09-01.
 */
public class MyGridPaneController implements Initializable{
    @Override
    public void initialize(URL location, ResourceBundle resources) {

    }
}

Следующий шаг добавляется в Scene Builder

enter image description here [/g0]

, и вы можете добавить этот компонент .

enter image description here [/g1]

5
ответ дан Marcin Lagowski 22 August 2018 в 01:30
поделиться
  • 1
    Пробовал это. Получил сообщение с сообщением «Объекты не могут быть добавлены в библиотеку, потому что они не являются автономными». – Will 1 September 2014 в 21:59
  • 2
    попробуйте добавить код;) – Marcin Lagowski 1 September 2014 в 22:14
  • 3
    За исключением того, что контроль чрезмерно упрощен по сравнению с тем, с которым я работаю. Я не знаю, что это сработает. Мой контроль - фактически совокупность компонентов, организованных вместе, которые я хочу, чтобы иметь возможность повторно использовать снова и снова, и то, что я вижу, у вас есть только сетка. Поместили бы элементы управления в этот GridPane, чтобы сделать его импортируемым, или он все равно не сработает полностью? – Will 1 September 2014 в 23:07
  • 4
    Это простой пример, в моих проектах я использую более сложные компоненты. Панели / HBox / ... с кнопками, комбинированными ящиками и т. Д. Это не имеет значения. Он должен работать нормально без каких-либо проблем. Просто используйте три файла, как здесь, и нет никаких проблем для повторного использования более сложных компонентов. – Marcin Lagowski 2 September 2014 в 00:08
  • 5
    О, я вижу. вам нужно отделить контроллер ... это имеет смысл, я думаю. Какова цель файла MyGridPaneController.java? Как / почему я должен использовать это? – Will 2 September 2014 в 04:52
Другие вопросы по тегам:

Похожие вопросы: