Javafx计算器的问题,我想知道那个显示框是用什么方法,我用textfield的话好像会影响我的
我用textfield会影响我的网格布局,就是怎样才能在计算器上方显示一个框框,能显示数字和结果的,具体怎样用,谢谢...
我用textfield会影响我的网格布局,就是怎样才能在计算器上方显示一个框框,能显示数字和结果的,具体怎样用,谢谢
展开
1个回答
展开全部
这是个JavaFX的布局问题 ,GridPane 是非常灵活的布局. 我觉得比较好用, 问题主要出在有的文本框要跨3列,也就是从0列开始,一直跨3列,
TextField tf = new TextField();
gridPane.add(tf,0,0,3,1);//跨三列,跨一行
方法说明
public void add(Node child,
int columnIndex,
int rowIndex,
int colspan,
int rowspan)
不跨行不跨列的时候,也使用add方法
public void add(Node child,
int columnIndex,
int rowIndex)
完整的参考代码如下[计算器布局参考代码]
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
public class GridPaneDemo extends Application{
private static final String str="123+456-789×C0.÷";
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
GridPane root = new GridPane();
root.setAlignment(Pos.CENTER);
root.setPadding(new Insets(15));
root.setHgap(10);
root.setVgap(10);
Scene scene = new Scene(root,300,350);
TextField tf = new TextField();
tf.setPrefHeight(50);//设置文本框的 最佳高度为50
tf.setFont(Font.font(java.awt.Font.MONOSPACED, FontWeight.BOLD,18));//字体设置
root.add(tf,0,0,3, 1);//跨三列,跨一行
Button btn1 = new Button("=");
btn1.setPrefSize(50, 50);//设置按钮的最佳宽 高
root.add(btn1, 3, 0);
for (int i = 0; i < str.length(); i++) {
Button btn = new Button(str.charAt(i)+"");
btn.setPrefSize(50, 50);
root.add(btn, i%4, i/4+1);//计算出列和行,并添加到GridPane上去
}
primaryStage.setScene(scene);
primaryStage.setTitle("Calculator");
primaryStage.show();
}
}
TableDI
2024-07-18 广告
2024-07-18 广告
VLOOKUP 是 Excel 中一个非常实用的函数,它允许用户在一个区域或表格的首列中查找特定值,并返回同一行中指定列中的值。当进行跨表匹配时,你可以使用 VLOOKUP 函数将两个不同表格中的数据关联起来。通过指定查找值、表格数组、列号...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询