本篇文章给大家谈谈javafxtabpane,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、javaFX怎么把两个不同的pane加到一个scene中2、javafx怎么给tabpane添加样式3、javafx中如何给面板添加背景图片例如BorderPane4、JavaFX界面半透明遮盖怎么整5、请问javafx该如何获取一个组件的全局绝对坐标?目前我想让组件随着鼠标的拖动而改变位置,(接下面)
javaFX怎么把两个不同的pane加到一个scene中
这种要并排放置的情况就把一个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();
}
}
————-效果如下—————-
javafx怎么给tabpane添加样式
javafx怎么给tabpane添加样式
Tab tab = …;
tab.setGraphic(new ImageView(…));
or
Tab tab = TabBuilder.create().graphic(new ImageView(…)).build();
javafx中如何给面板添加背景图片例如BorderPane
用指定的图片构造标签对象lb。
把标签放在第二层JlayerPane上。
设置标签的尺寸,即背景图象的大小。
把内容面板设置为透明,这样整个框架的背景就不再是内容面板的背景色,而是第二层中标签的图像。
将标签添加到主面板pnlMain中。
JavaFX界面半透明遮盖怎么整
stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.initStyle(StageStyle.TRANSPARENT);//这是让弹出窗口透明,如果不设置stage透明,stackpane再怎么设置也没用。
FXML:
StackPane
style=”-fx-border-radius:8px;-fx-opacity: 0.4;-fx-background-color: black ;”
xmlns=”Java SE | Oracle Technology Network” xmlns:fx=”Java SE | Oracle Technology Network”
fxml里用css样式 -fx-opacity: 0.4;控制stackpane半透明
以上方法stage显示后是半透明遮罩效果,但是我想要在stackpane中间一块区域里放输入对话框,结果输入部分还是半透明的效果,还未能解决
追加—-换了下实现方式,就是在primaryStage布局中用stackpane,在stackpane的children中添加一个半透明的pane,Pane fx:id=”main_mask” style=”-fx-border-radius:8px;-fx-opacity: 0.4;-fx-background-color: black ;” visible=”false” /,默认不显示;在显示弹出的stage时,再通过代码设置main_mask显示,在关闭弹出stage时,隐藏main_mask,这样能达到想要的效果了,但是这样的缺点是不通用,组件不独立,想办法改进中
请问javafx该如何获取一个组件的全局绝对坐标?目前我想让组件随着鼠标的拖动而改变位置,(接下面)
效果如图
参考代码如下
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Region;
import javafx.stage.Stage;
public class TestDraggedApp extends Application {
//保存鼠标点击在组件上的位置
private double offsetX,offsetY;
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
Region region = new Region();
region.setStyle(“-fx-background-color: #75c0ff;-fx-pref-width: 100;-fx-pref-height: 50”);
root.getChildren().add(region);
primaryStage.setScene(new Scene(root, 500, 320));
primaryStage.setTitle(“TestDraggedApp”);
primaryStage.show();
//设置鼠标按下事件
region.setOnMousePressed(event – {
//记录鼠标点击在组件上的位置
offsetX = event.getX();
offsetY = event.getY();
});
//设置鼠标拖动事件
region.setOnMouseDragged(event – {
//设置新的位置
double layoutX = event.getSceneX() – offsetX;
region.setLayoutX(layoutX);
double layoutY = event.getSceneY() – offsetY;
region.setLayoutY(layoutY);
});
}
public static void main(String[] args) {
launch(args);
}
}
javafxtabpane的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javafxtabpane的信息别忘了在本站进行查找喔。