|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Konstruktoren: - Button() - Button (String text) - Button (double value, Node graphic)
Methoden:
- boolean isCancelButton() - boolean isDefaultButton() - void setCancelButton(boolean value) - void setDefaultButton(boolean value) - void setText(String) - void setDisable(boolean value) - void setVisible(boolean value)
|
|
|
|
|
|
|
|
|
|
|
|
Konstruktoren: - CheckBox() - CheckBox(String text) - CheckBox(double value, Node graphic)
Methoden:
- void setAllowIndeterminate(boolean value) - void setIndeterminate(boolean value) - void setSelected(boolean value) - boolean isSelected()
- boolean isAllowIndeterminate()
- void setText(String) - void setWrapText(String) - void setDisable(boolean value) - void setVisible(boolean value)
Abfragen:
boolean check = checkbox.isSelected();
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.collections.*;
Konstruktoren: - public ChoiceBox() - public ChoiceBox(ObservableList<T> items)
Methoden:
- getItems().add(String) - Object getValue() - ObservableList<T> getItems() void setItems(ObservableList<T> value)
- void setDisable(boolean value) - void setVisible(boolean value) - setFont: choicePizzaName.setStyle("-fx-font: 22px \"Serif\";"); Abfragen:
String pizza = (String)choicePizzaName.getValue(); if (pizza==null) { errorBox("Bitte geben Sie einen Pizzanamen ein","Hinweis"); return; }
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.collections.*;
Konstruktoren: - public ComboBox() - public ComboBox(ObservableList<T> items)
Methoden:
- getItems().add(String) - Object getValue() - ObservableList<T> getItems() - void setItems(ObservableList<T> value) - void setPromptText(String) - void setEditable(boolean) - void setVisibleRowCount(int)
- void setDisable(boolean value) - void setVisible(boolean value) - setFont:
cb.setStyle("-fx-font: 22px \"Serif\";"); Abfragen:
String pizza = (String)cbPizzaName.getValue(); if (pizza==null) { errorBox("Bitte geben Sie einen Pizzanamen ein","Hinweis"); return; }
|
|
|
|
|
|
|
|
|
|
|
|
Konstruktoren: - public MenuItem()
- public MenuItem(String text)
- public MenuItem(String text, Node graphic)
Methoden: - void setAccelerator(KeyCombination value)
- void setDisable(boolean value)
- void setVisible(boolean value)
Weitere MenuItems:
RadioMenuItem { text: "Font 1", toggleGroup: fontGroup } CheckMenuItemSeparator:
new SeparatorMenuItem()
import javafx.scene.control.ContextMenu; import javafx.scene.input.ContextMenuEvent;
ContextMenu contextmenu = new ContextMenu(); MenuItem mnEdit = new MenuItem("Edit"); MenuItem mnDelete = new MenuItem("Delete"); MenuItem mnDeleteAll = new MenuItem("DeleteAll"); contextmenu.getItems().addAll(mnEdit, mnDelete, mnDeleteAll);
listviewPunkte.setOnContextMenuRequested(new EventHandler<ContextMenuEvent>() { @Override public void handle(ContextMenuEvent event) { contextmenu.show( listviewPunkte, event.getScreenX(), event.getScreenY()); } });
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.collections.*; import javafx.geometry.Orientation import - javafx.scene.control.MultipleSelectionModel;
Konstruktoren: - public ListView() - public ListView(ObservableList<T> items)
Methoden:
- getItems().add(String) - Object getValue() - ObservableList<T> getItems() - void setItems(ObservableList<T> value)
- void setOrientation(Orientation value) - listview.setOrientation(Orientation.VERTICAL); - void setPlaceholder(Node value) - void setSelectionModel(MultipleSelectionModel<T> value) - listview.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); - listview.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); - void scrollTo(int index) - void scrollTo(T object) - void setDisable(boolean value) - void setVisible(boolean value) - setFont: listview.setStyle("-fx-font: 22px \"Serif\";"); Beispiel:
private final ObservableList<Double> listePunkte = FXCollections.observableArrayList(); listviewPunkte.setItems(listePunkte ); listviewPunkte.setPlaceholder(new Label("Bitte etwas auswaehlen")); listviewPunkte.setStyle("-fx-font: 22px \"Serif\";");CellFactory:
class PunkteCell extends ListCell<Double> { @Override protected void updateItem(Double item, boolean empty) { super.updateItem(item, empty); if (item!=null && !empty) { setText(item.toString()+" Pkt"); if (item<50) setTextFill(Color.RED); else setTextFill(Color.BLUE); } else { setText("--"); setTextFill(Color.BLACK); } } } // class PunkteCell
// setzen listviewPunkte.setCellFactory((param) -> { return new PunkteCell(); });
Abfragen:
ObservableList<String> selectedItems; StringBuilder sb = new StringBuilder(); selectedItems = listview.getSelectionModel().getSelectedItems(); for (String item : selectedItems){ sb.append( item); sb.append(" , "); }
Aktionen zur ListView:
private void editSeletedItem() { int index = listviewPunkte.getSelectionModel().getSelectedIndex(); if (index>=0 && index<listePunkte.size()) { Double pkt = listePunkte.get(index); System.out.println(pkt.toString()); String str_pkt = insertString("Bitte den neuen Wert eingeben", "Punkt ändern", Double.toString(pkt)); if (str_pkt!=null) { double pktNeu = getDoubleNumber(str_pkt); if (!Double.isNaN(pktNeu)) { listePunkte.set(index,pktNeu); } } } else { errorBox("Bitte einen Eintrag selektieren","Hinweis"); } }
private void deleteSeletedItem() { int index = listviewPunkte.getSelectionModel().getSelectedIndex(); ObservableList<Double> selectedItems = listviewPunkte.getSelectionModel().getSelectedItems(); listviewPunkte.getItems().remove(index); //listePunkte.removeAll(selectedItems); }
private void deleteAllItems() { listePunkte.clear(); }
|
|
|
|
|
|
|
|
|
|
|
|
MenuBar
Konstruktor: - public MenuBar()
- public MenuBar(Menu, Menu, Menu)
void setAccelerator(KeyCombination value) void setDisable(boolean value) void setVisible(boolean value)
RadioMenuItem { text: "Font 1", toggleGroup: fontGroup } CheckMenuItem
Menu:
Konstruktor: - public Menu()public Menu(String text)
- public Menu(String text, Node graphic)
Methoden - void setAccelerator(KeyCombination value)
- void setDisable(boolean value)
- void setVisible(boolean value)
MenuItem:
Konstruktoren: - public MenuItem()
- public MenuItem(String text)
- public MenuItem(String text, Node graphic)
Methoden: - void setAccelerator(KeyCombination value)
- void setDisable(boolean value)
- void setVisible(boolean value)
Weitere MenuItems:
RadioMenuItem { text: "Font 1", toggleGroup: fontGroup } CheckMenuItemSeparator:
new SeparatorMenuItem()
ShortKey:
import javafx.scene.input.KeyCombination menuOpen.setAccelerator(KeyCombination.keyCombination("Ctrl+O"));
|
|
|
|
|
|
|
|
|
|
|
|
javafx.scene.control.ToggleButton
Konstruktoren: - public RadioButton() - public RadioButton(String)
Methoden:
void setSelected(boolean); bn1.setToggleGroup(group); // javafx.scene.control.ToggleButton - void setDisable(boolean value) - void setVisible(boolean value)
Beispiel:
ToggleGroup group1 = new ToggleGroup(); rb1.setToggleGroup(group1); rb1.setFont(new Font("Courier New",22)); rb1.setMaxWidth(Double.POSITIVE_INFINITY); rb1.setOnAction(e->rb1Click());Abfragen:
boolean value = rb1.isSelected();
|
|
|
|
|
|
|
|
|
|
|
|
javafx.scene.control.ToggleButton javafx.geometry.Orientation
Konstruktoren: - public public Slider() - public Slider(double min, double max, double value);
Methoden:
void decrement()void increment() void setBlockIncrement(double value) setLabelFormatter(StringConverter<Double> value) setMajorTickUnit(double value) setMax(double value) void setMin(double value) void setMinorTickCount(int) void setMajorTickUnit(double); void setOrientation(Orientation value) void setShowTickLabels(boolean value) void setShowTickMarks(boolean value) void setSnapToTicks(boolean value) void setValue(double value) double getValue()
Beispiel:
sliderSize = new Slider(5, 25.0, 2.0); sliderSize.setMajorTickUnit(1.0); sliderSize.setMinorTickCount(0); sliderSize.setShowTickLabels(true); sliderSize.setShowTickMarks(true); sliderSize.setSnapToTicks(true);
sliderSize.valueProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldValue, Number newValue) { showSliderGroesse(newValue); } });
private void showSliderGroesse(Number value) { System.out.println("SpinnerGroesse: index: "+ value); }
Abfragen:
double size = sliderSize.getValue();
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.collections.*;
Konstruktoren: - public Spinner()
- Spinner(double min, double max, double initialValue)
- Spinner(double min, double max, double initialValue, double amountToStepBy)
- Spinner(int min, int max, int initialValue)
- Spinner(int min, int max, int initialValue, int amountToStepBy)
- Spinner(ObservableList<T> items)
- Spinner(SpinnerValueFactory<T> valueFactory)
Methoden:
- Object getValue() - void decrement() - void decrement(int steps) - void increment() - void increment(int steps) - boolean isEditable() - void setEditable(boolean value)
spGroesse.setStyle("-fx-font: 22px \"Serif\";");
Styles:
spinner2.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_RIGHT_HORIZONTAL); spinner3.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_LEFT_VERTICAL); spinner4.getStyleClass().add(Spinner.STYLE_CLASS_ARROWS_ON_LEFT_HORIZONTAL); spinner5.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_VERTICAL); spinner6.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
Beispiel:
spGroesse = new Spinner(5.0, 30.0, 15.0, 0.5); spGroesse.setStyle("-fx-font: 22px \"Serif\";");
ObservableList<String> pizzas = FXCollections.observableArrayList( "Käse", "Käse Schinken", "Hawai", "Salami / Schinken", "Vegetarisch", "Peperoni", "Vier Jahreszeiten", "Ei, ExtraKäse");
SpinnerValueFactory<String> valueFactory = new SpinnerValueFactory.ListSpinnerValueFactory<String>(pizzas); // Default value valueFactory.setValue("Hawaii"); spPizza.setValueFactory(valueFactory); spPizza.setStyle("-fx-font: 22px \"Serif\";");
Abfragen:
double size = sliderSize.getValue();
String pizza = (String)spPizza.getValue(); if (pizza==null) { errorBox("Bitte geben Sie einen Pizzanamen ein","Hinweis"); return; }
|
|
|
|
|
|
|
|
|
|
|
|
import javafx.collections.*;
Konstruktoren: - public TableView() - public TableView(ObservableList<T> items)
Methoden:
- getItems().add(String) - Object getValue() - ObservableList<T> getItems() - void setItems(ObservableList<T> value) - void setEditable(boolean value) - void setPlaceholder(Node value) - void scrollTo(int index) - void scrollTo(T object)
- void setDisable(boolean value) - void setVisible(boolean value) - setFont(font)
1. Beispiel:
private TableView tableview = new TableView() ; ObservableList<Student> listeStd = FXCollections.observableArrayList();
listeStd.addAll( new Student("Andrea","Meier",12345,1.3), new Student("Ute","Hein",12545,4.0), new Student("Manfred","Tischler",12349,5.0), new Student("Anton","Epple",12545,2.7) );
tableview.setItems(listeStd);
tableview.setStyle("-fx-font: 22px \"Serif\";");
tableview.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
TableColumn<Student, String> colFirstname = new TableColumn<Student, String>("Firstname"); colFirstname.setMinWidth(100); // Mindestbreite setzen colFirstname.setCellValueFactory(new PropertyValueFactory<Student, String>("firstname"));
tableview.getColumns().addAll(colFirstname, colLastname,colMnr, colNote);
2. Beispiel (CellFactory):
class NoteCell extends TableCell<Student,Double> { @Override protected void updateItem(Double item, boolean empty) { super.updateItem(item, empty); if (item!=null && !empty) { setText(item.toString()); if (item<3.0) setTextFill(Color.GREEN); else if (item<5.0) setTextFill(Color.BLUE); else setTextFill(Color.RED); } else { setText("--"); setTextFill(Color.BLACK); } } } // class NoteCell colNote.setCellValueFactory(new PropertyValueFactory<Student, Double>("note") );
3. Beispiel (Sortierung):
import javafx.collections.transformation.SortedList; import java.util.*; /// Comparator
// muss extern definiert werden Comparator<Student> std Comparator = new Comparator<Student>() { public int compare(Student std1, Student std2) { int result = std1.getLastname().compareTo(std2.getLastname()); if (result==0) { result = std1.getFirstname().compareTo(std2.getFirstname()); } return result; } };
listeSortedStd = new SortedList<>(listeStd,std Comparator ); tableview.setItems(listeSortedStd);
private void insert() { listeStd.addAll( new Student("Ute","Abba",12545,4.0), new Student("Antonia","Epple",12545,2.7) ); }
4. Beispiel (Sortierung / Filter):
FilteredList<Student> filteredList = new FilteredList<>(listeStd, p -> true); tFilter.textProperty().addListener((observable, oldValue, newValue) -> { filteredList.setPredicate(std -> { if (newValue == null || newValue.isEmpty()) { return true; // Alles anzeigen } String lowerCaseFilter = newValue.toLowerCase(); if (std.getLastname().toLowerCase().contains(lowerCaseFilter)) { return true; } else if (std.getFirstname().toLowerCase().contains(lowerCaseFilter)) { return true; } return false; // Does not match. }); }); listeSortedStd = new SortedList<>(filteredList,std Comparator ); tableview.setItems(listeSortedStd);
private void insert() { listeStd.addAll( new Student("Ute","Abba",12545,4.0), new Student("Antonia","Epple",12545,2.7) ); }
MouseClick:
tableview.setOnMouseClicked(e-> tableviewOnClick(e));
private void tableviewOnClick(MouseEvent e) { // MIDDLE SECONDARY if (e.getButton()==MouseButton.PRIMARY && e.getClickCount()==2) { editSeletedItem(); } }
Aktionen: private void editSeletedItem() {
int index = tableview.getSelectionModel().getSelectedIndex(); if (index>=0 && index<listeStd.size()) { Student std = listeStd.get(index); // Dialog zum Ändern } else { errorBox("Bitte einen Eintrag selektieren","Hinweis"); } }
private void deleteSeletedItem() {
int index = tableview.getSelectionModel().getSelectedIndex(); ObservableList<Student> selectedItems = tableview.getSelectionModel().getSelectedItems(); tableview.getItems().remove(index); //listeStd.removeAll(selectedItems); }
private void deleteAllItems() {
listeStd.clear(); }
Abfragen:
import javafx.collections.*;
ObservableList<String> selectedItems; StringBuilder sb = new StringBuilder(); selectedItems = tableview.getSelectionModel().getSelectedItems();
for (String item : selectedItems) { sb.append( item); sb.append(" , "); }
|
|
|
|
|
|
|
|
|
FileChooser
ListView
|
|
|
|
|