问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javaFX怎么把两个不同的pane加到一个scene中43

发布网友 发布时间:2023-10-10 18:33

我来回答

1个回答

热心网友 时间:2024-11-08 00:00

这种要并排放置的情况就把一个HBox对象设为Scene的root,然后再把两个panel放到HBox上即可。由于你只是要界面,计算器的计算逻辑我就不实现了,具体代码如下(运行环境:jdk8或以上):


import javafx.application.Application;

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.HBox;

import javafx.scene.layout.Priority;

import javafx.stage.Stage;


public class TwoPane extends Application {


final static private int BUTTON_WIDTH = 40;

final static private int BUTTON_HEIGHT = 40;


public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) throws Exception {

primaryStage.setTitle("简易计算器");


Label label = new Label("");

label.setAlignment(Pos.CENTER);

label.setMinWidth(100);

HBox expresssionPanel = new HBox(label);

expresssionPanel.setAlignment(Pos.CENTER);

GridPane keyboardPanel = new GridPane();

for(int i = 1; i <= 9; ++i){

Button btn = new Button(String.valueOf(i));

btn.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

btn.setOnAction(e -> label.setText(label.getText() + btn.getText()));

keyboardPanel.add(btn, (i - 1) % 3, i > 3 ? (i > 6 ? 2 : 1) : 0);

}

Button zero = new Button(String.valueOf("0"));

zero.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

zero.setOnAction(e -> label.setText(label.getText() + zero.getText()));

Button plus = new Button(String.valueOf("+"));

plus.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

plus.setOnAction(e -> label.setText(label.getText() + plus.getText()));

Button minus = new Button(String.valueOf("-"));

minus.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

minus.setOnAction(e -> label.setText(label.getText() + minus.getText()));

Button time = new Button(String.valueOf("*"));

time.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

time.setOnAction(e -> label.setText(label.getText() + time.getText()));

Button divide = new Button(String.valueOf("/"));

divide.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

divide.setOnAction(e -> label.setText(label.getText() + divide.getText()));

Button calc = new Button(String.valueOf("="));

calc.setPrefSize(BUTTON_WIDTH, BUTTON_HEIGHT);

calc.setOnAction(e -> label.setText(label.getText() + calc.getText())/*TODO 计算逻辑代码待完成*/);

keyboardPanel.add(zero, 0, 3);

keyboardPanel.add(plus, 1, 3);

keyboardPanel.add(minus, 2, 3);

keyboardPanel.add(time, 0, 4);

keyboardPanel.add(divide, 1, 4);

keyboardPanel.add(calc, 2, 4);

HBox root = new HBox(expresssionPanel, keyboardPanel);

HBox.setHgrow(expresssionPanel, Priority.ALWAYS);

primaryStage.setScene(new Scene(root));

primaryStage.show();

}

}

-------------效果如下----------------

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
陈八两面馆的什么面最好吃? 杭州湾跨海大桥可以骑行吗 杭州湾跨海大桥上能骑车吗? ...不知道可不可以骑自行车,又需要做哪些准备,谢谢各位资深人士了... 激光祛痘坑的效果如何? 口述:3个闺密分享1个“软饭男” 骚气文案暗示-推荐65句 三个男人怎么晒朋友圈 任钊的介绍 请问德阳青依江路口到德阳中级人民法院坐几路公交车 lol阿卡丽中单害怕什么英雄?阿卡里半肉怎么出装?她遇到脆皮...37 java登陆界面如何插入背景图片9 什么中单好打阿卡丽? javafx里 borderpane 和Hbox,vbox要... javafx里面的tabpane的背景可不可以用图片代替!可...1 ...谁能告诉我东南大学的数学分析和高等代数用的是哪版本教材啊?_百 ... 有没有类似大明龙权的游戏。人气高的4 开超Q好,还是会员,和黄钻,哪个更好 海思81O和天玑82O哪个好? 大明龙权还有人玩吗?求类似游戏 有没有像大明龙权一样的游戏啊13 大明龙权是什么样的游戏??有什么好玩的亮点??12 大明龙权手游什么职业好1 北京交通大学海滨学院怎么样,有什么专业,适合女生学,就业率怎...6 大明龙权是什么样的游戏 为什么它的游戏是1.8G 北京交通大学海滨学院2012届毕业生就业情况如何?12 侵略者的英文单词怎么写? 北京交通大学海滨学院出来的大学生好就业吗39 性生活后卫生怎么清理? sos!我要了解一下北京交通大学海滨学院近两三年的情况尤其是...24 中单铁男怕谁?6 x2o相当海思哪个型号 天玑72o与骁龙665哪个好? 联发科P7o处理器好还是海思96o处理器好1 大众车胎压报警灯是什么样子 大众汽车仪表盘符号胎压报警灯怎么样? ThL美猴王手机质量怎么样?142 人行个人征信系统都显示哪些个人资料?11 个人征信报告中的一些符号是什么意思133 个人征信报告中包括哪些内容?407 个人征信报告中的一些符号是什么意思?111 ( )是最根本的党内法规,是管党治党的总规矩。 大神告诉我苹果电脑玩游戏到底会不会卡 Apple&#47;苹果 MacBook Air MD760CH&#47;B...8 ...加强党内法规制度建设其中最根本的党内法规是什么 Apple MacBook Air MD760CH&#47;B 玩魔...1 雅思词汇每天学:九大行星词汇 一只手机号注册了两个,想要注销一个怎么注销? 郑州天意驾校怎么样啊,外地学车多少钱啊 信濠光电怎么走?信濠光电现在涨停能买吗?信濠光电股票每年分红...