JavaFX Buttons und TableView

iliano

Mitglied
Hallo Leute.
Ich möchte gerne wenn ich einen Button in einer GUI zwei oder drei mal drücke, dass in der TableView die Anzahl der gedrückten Male ausgegeben wird.
Jedes mal wird eine neue Zeile hinzugefügt. Das möchte ich aber nicht.
Wie kann man es machen? Habe lange gesucht, aber leider nichts gefunden.
Würde mich sehr über eure Hilfe freuen.

Hier der Code den ich geschrieben habe:

Main.java
Java:
package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
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("Test");
        primaryStage.setScene(new Scene(root, 530, 400));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

Controller.java
Java:
package sample;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.*;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;

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

public class Controller implements Initializable{

    @FXML
    private Button btn6;
    @FXML
    private Button btn7;
    @FXML
    private Button btn4;
    @FXML
    private Button btn5;
    @FXML
    private Button btn2;
    @FXML
    private Button btn3;
    @FXML
    private TableColumn<Product, Integer> mengeColumn;
    @FXML
    private VBox box;
    @FXML
    private Button btn1;
    @FXML
    private TableView<Product> table;
    @FXML
    private TableColumn<Product, String> btnColumn;

    final ObservableList<Product> product = FXCollections.observableArrayList();

    @Override
    public void initialize(URL location, ResourceBundle resources) {

        mengeColumn.setCellValueFactory(new PropertyValueFactory<>("menge"));
        btnColumn.setCellValueFactory(new PropertyValueFactory<>("clicked"));
        table.setItems(product);
    }

    @FXML
    void btn1Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn2Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn3Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn4Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn5Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn6Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }

    @FXML
    void btn7Click(ActionEvent event) {
        product.add(new Product(1, ((Button)event.getSource()).getText()));
    }


}

Product.java
Java:
package sample;


public class Product {
    private int menge;
    private String clicked;

    public Product() {
        this.menge = 0;
        this.clicked = "";
    }

    public Product(int menge, String clicked) {
        this.menge = menge;
        this.clicked = clicked;
    }


    public int getMenge() {
        return menge;
    }

    public void setMenge(int menge) {
        this.menge = menge;
    }

    public String getClicked() {
        return clicked;
    }

    public void setClicked(String clicked) {
        this.clicked = clicked;
    }
}

Sample.fxml
Java:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>


<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="530.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <VBox fx:id="box" layoutX="14.0" layoutY="14.0" prefHeight="200.0" prefWidth="150.0" spacing="5.0" AnchorPane.bottomAnchor="20.0" AnchorPane.leftAnchor="14.0" AnchorPane.topAnchor="20.0">
         <children>
            <Button fx:id="btn1" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn1Click" prefHeight="50.0" text="Button 1" />
            <Button fx:id="btn2" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn2Click" prefHeight="50.0" text="Button 2" />
            <Button fx:id="btn3" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn3Click" prefHeight="50.0" text="Button 3" />
            <Button fx:id="btn4" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn4Click" prefHeight="50.0" text="Button 4" />
            <Button fx:id="btn5" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn5Click" prefHeight="50.0" text="Button 5" />
            <Button fx:id="btn6" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn6Click" prefHeight="50.0" text="Button 6" />
            <Button fx:id="btn7" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btn7Click" prefHeight="50.0" text="Button 7" />
         </children>
      </VBox>
      <TableView fx:id="table" layoutX="200.0" layoutY="20.0" prefHeight="360.0" prefWidth="300.0" AnchorPane.bottomAnchor="20.0" AnchorPane.rightAnchor="20.0" AnchorPane.topAnchor="20.0">
        <columns>
          <TableColumn fx:id="mengeColumn" prefWidth="86.0" text="Menge" />
          <TableColumn fx:id="btnColumn" prefWidth="213.0" text="Button Click" />
        </columns>
      </TableView>
   </children>
</AnchorPane>
 
Zuletzt bearbeitet von einem Moderator:

knilch

Bekanntes Mitglied
Hi,
Falls du immer noch eine Lösung suchst:

Für alle deine doAction Events, die du für die 7 Buttons registiert hast führst du:

Java:
product.add(new Product(1, ((Button)event.getSource()).getText()));

aus.
Das erzeugt dir bei jedem Drücken auf irgend einen Button eine neue Product-Instanz in die ObservableList<Product> product.
Du möchtest aber, dass für jeden Button das Product nur 1 mal in der Tabelle dargestellt wird, also musst du prüfen, ob die Product-Instanz schon existiert, und nur dann in die ObservableList<Product> eingefügt wird, falls die Product-Instanz noch nicht vorhanden ist.
Die Menge wird dann bei jedem Drücken auf den jeweiligen Button für die jeweilige Product-Instanz inkrementiert.
In etwa so:
Java:
public class Controller implements Initializable {
   ...
  private ObservableList<Product> products = FXCollections.observableArrayList();
  private Product product1;
  private Product product2;
  private Product product3;
  private Product product4;
  private Product product5;
  private Product product6;
  private Product product7;
   ...
  @FXML
  void btn1Click(ActionEvent event) {
     if(product1 == null) {
       product1 = new Product();
       product1.setMenge(1);
       product1.setClicked(((Button)event.getSource()).getText());
       products.add(product1);
     }
     else {
       product1.setMenge(product1.getMenge()+1);
     }
     table.refresh();
  }
    
   @FXML
  void btn2Click(ActionEvent event) {
     if(product2 == null) {
       product2 = new Product();
       product2.setMenge(1);
       product2.setClicked(((Button)event.getSource()).getText());
       products.add(product2);
     }
     else {
       product2.setMenge(product2.getMenge()+1);
     }
     table.refresh();
  }
   ...
  
   // das selbe musst du dann noch für die btn3Click() bis btn7Click() machen; natürlich mit der jeweiligen Product-Instanz
   // mit table.refresh(); wird die table-View aktualisiert, damit die neue Product- Instanz und evtl. der neue Wert von menge in der Tabelle auch zu sehen ist.

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
volcanos SpringLayout mit zusätzlichen Buttons außerhalb des SpringLayout AWT, Swing, JavaFX & SWT 33
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
O Swing JOptionPane.showOptionDialog - Wie kann ich Buttons größer machen AWT, Swing, JavaFX & SWT 10
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
J TicTacToe Buttons AWT, Swing, JavaFX & SWT 14
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
C Buttons funtionieren nicht AWT, Swing, JavaFX & SWT 10
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
Neumi5694 Sprache der Standard-Buttons AWT, Swing, JavaFX & SWT 7
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
T Buttons auf Tablet viel kleiner als am PC AWT, Swing, JavaFX & SWT 0
S Buttons und TextField automatisch vergrößern AWT, Swing, JavaFX & SWT 8
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
JG12111989 Buttons funktionieren nicht AWT, Swing, JavaFX & SWT 4
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M 4-Gewinnt mit Buttons AWT, Swing, JavaFX & SWT 1
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
U Buttons schräg implementieren AWT, Swing, JavaFX & SWT 4
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
K Event Handling 2 Buttons und Thread stop AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
M Menü mit Buttons AWT, Swing, JavaFX & SWT 8
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
U Swing Buttons generieren AWT, Swing, JavaFX & SWT 19
G Swing Buttons in Layouts frei platzieren AWT, Swing, JavaFX & SWT 7
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
B Buttons auf JLabel? AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
1 Buttons in Kombination mit Linien AWT, Swing, JavaFX & SWT 3
K Aussehen des Buttons resetten AWT, Swing, JavaFX & SWT 4
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3
A JButton - Klicks zählen auf mehreren Buttons AWT, Swing, JavaFX & SWT 2
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
dzim Toolbar - Problem bei enable/disable von Buttons AWT, Swing, JavaFX & SWT 6
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
F Grafik mit Buttons versehen AWT, Swing, JavaFX & SWT 8
J JOptionPane mit zwei Buttons?! AWT, Swing, JavaFX & SWT 3
K Schachbrett mit buttons AWT, Swing, JavaFX & SWT 2
B Buttons entfernen / hinzufügen AWT, Swing, JavaFX & SWT 5
TheWhiteShadow Swing Buttons in Liste AWT, Swing, JavaFX & SWT 7
C AWT Buttons verschwinden, wenn Fenster Vollbild gesetzt wird AWT, Swing, JavaFX & SWT 38
C AWT Verwendung von Buttons in Spielen AWT, Swing, JavaFX & SWT 8
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
E Calendar GUI Buttons AWT, Swing, JavaFX & SWT 4
M 2 Buttons mit derselben Breite AWT, Swing, JavaFX & SWT 9
K LayoutManager Buttons auf bestimmte x und y Koordinaten AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben