SparkMonkay
Commander
- Registriert
- Feb. 2013
- Beiträge
- 2.337
Moinsen,
ich habe mir aus der ULB ein Buch zu JavaFX ausgeliehen und auch mit den Tutorials von Oracle gelernt.
Sehr schöne API, ohne eine IDE währe ich da aufgeschmissen, wegen den ganzen Importen. Ist aber nicht das Thema, ich habe ein Programm geschrieben, welches insgesamt einen Textfeld hat und insgesamt 10 Felder, 0-9 halt.
Mein Ziel ist es einen kleinen Taschenrechner zu schreiben. Da soll vorerst nur Addition und Subtraktion, die anderen beiden Grundrechenarten kommen dann noch, vielleicht wird daraus sogar noch was gemacht womit ich mir nächstes Semeseter bei meinen Übungsaufgaben nervige Sachen spare, wie Konvergenz, Ableitungen, Integrale usw. mal schauen, zuerst soll da jetzige hier gescheit laufen.
Erstmals der Code und dann die Fragen
Fragen:
Danke für hilfreiche Antworten
ich habe mir aus der ULB ein Buch zu JavaFX ausgeliehen und auch mit den Tutorials von Oracle gelernt.
Sehr schöne API, ohne eine IDE währe ich da aufgeschmissen, wegen den ganzen Importen. Ist aber nicht das Thema, ich habe ein Programm geschrieben, welches insgesamt einen Textfeld hat und insgesamt 10 Felder, 0-9 halt.
Mein Ziel ist es einen kleinen Taschenrechner zu schreiben. Da soll vorerst nur Addition und Subtraktion, die anderen beiden Grundrechenarten kommen dann noch, vielleicht wird daraus sogar noch was gemacht womit ich mir nächstes Semeseter bei meinen Übungsaufgaben nervige Sachen spare, wie Konvergenz, Ableitungen, Integrale usw. mal schauen, zuerst soll da jetzige hier gescheit laufen.
Erstmals der Code und dann die Fragen
Code:
package helloworld;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
int count;
String stringCount="";
@Override
public void start(Stage primaryStage) {
/*
This is the Grid Pane
*/
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(5);
grid.setVgap(5);
grid.setPadding(new Insets(0, 1, 1, 2));
/*
Label
*/
Label label=new Label(stringCount);
/*
The buttons
*/
Button numbers[]=new Button[10];
numbers[0]=new Button();
numbers[0].setText("0");
numbers[0].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(0);
label.setText(stringCount);
});
numbers[1]=new Button();
numbers[1].setText("1");
numbers[1].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(1);
label.setText(stringCount);
});
numbers[2]=new Button();
numbers[2].setText("2");
numbers[2].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(2);
label.setText(stringCount);
});
numbers[3]=new Button();
numbers[3].setText("3");
numbers[3].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(3);
label.setText(stringCount);
});
numbers[4]=new Button();
numbers[4].setText("4");
numbers[4].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(4);
label.setText(stringCount);
});
numbers[5]=new Button();
numbers[5].setText("5");
numbers[5].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(5);
label.setText(stringCount);
});
numbers[6]=new Button();
numbers[6].setText("6");
numbers[6].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(6);
label.setText(stringCount);
});
numbers[7]=new Button();
numbers[7].setText("7");
numbers[7].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(7);
label.setText(stringCount);
});
numbers[8]=new Button();
numbers[8].setText("8");
numbers[8].setOnAction((ActionEvent event) ->
{
stringCount=stringCount+String.valueOf(8);
label.setText(stringCount);
});
numbers[9]=new Button();
numbers[9].setText("9");
numbers[9].setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event) {
stringCount=stringCount+String.valueOf(9);
label.setText(stringCount);
}
});
/*
Into the layout
*/
grid.add(label , 0, 0);
grid.add(numbers[1], 0, 1);
grid.add(numbers[2], 1, 1);
grid.add(numbers[3], 2, 1);
grid.add(numbers[4], 0, 2);
grid.add(numbers[5], 1, 2);
grid.add(numbers[6], 2, 2);
grid.add(numbers[7], 0, 3);
grid.add(numbers[8], 1, 3);
grid.add(numbers[9], 2, 3);
grid.add(numbers[0], 1, 4);
/*
These here are the settings for the window.
*/
Scene scene = new Scene(grid, 400, 400);
primaryStage.setScene(scene);
primaryStage.setTitle("Calculator");
primaryStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
- Wenn der ein oder andere den Abschnitt mit den Buttons sieht, stehen dem die Haare zu bergen. Ich habe es schon mit einer for-Schleife versucht, aber dann hat jeder Button den Wert "10" gehabt und nicht von 0 bis 9 hochgezählt....
- Das Textlabel wird ja breiter je mehr da Zahlen sich in dem Label befinden, bzw,je größer die Zahl ist. Ein Screenshot zeigt was ich will.

Das Bildchen zu meinem Problem:

Ich möchte einfach, das das Feld eine feste größe hat und nicht, durch eine so lange Zahl die Spaltenlücken vergrößert . - Lambda Expressions. Der 10. Button ist ohne Lambda Expression, die anderen mit, NetBeans will das ich es mit mache und weist mich nett darauf hin, auf Oracle und in meine Buch ist es ohne, was jetzt?
- Da war was ich habe es nur vergessen...
Danke für hilfreiche Antworten
