我试图在javafx中制作一个面板,我习惯了一个边框窗格作为一个主要场景。中央面板有4个窗口(main1、main2、main3、main4),左面板有一个导航菜单。
borderPane.setCenter(mainMenu1.getCenterMain1UI());
//borderPane.setCenter(mainMenu2.getCenterMain2UI());
//borderPane.setCenter(mainMenu3.getCenterMain3UI());
//borderPane.setCenter(mainMenu4.getCenterMain4UI());
public BorderPane getAppWindow(){
if (borderPane == null){
borderPane = new BorderPane();
borderPane.setTop(topPanel.getTopPanelUI());
borderPane.setBottom(bottomPanel.getBottomPanelUI());
borderPane.setLeft(leftPanel.getLeftPanelUI());
borderPane.setCenter(mainMenu.getCenterMainUI());
borderPane.setAlignment(borderPane.getCenter(), Pos.TOP_LEFT);
}
return borderPane;
}
public class LeftPanelController {
public VBox leftPanelPane;
public Button btnLeftPanelMainmenu;
public Button btnLeftPanelDb;
public Button btnLeftPanelOfficeInfo;
public Button btnLeftPanelConfiguration;
public void btnLeftPanelMainmenuOnClickAction(ActionEvent e){
change border pane center to main
}
public void btnLeftPanelDbOnClickAction(ActionEvent e){
change border pane center to DB
}
public void btnLeftPanelOfficeInfoOnClickAction(ActionEvent e){
change border pane center to DB
}
public void btnLeftPanelConfigurationOnClickAction(ActionEvent e){
change border pane center to configuration
}
}
您需要为每个菜单按钮设置on action事件,以便更改BorderPane
中心显示的内容。
这里有一个例子:
import java.util.LinkedHashMap;
import java.util.Map;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class BorderPaneExample extends Application {
private Map<String, Node> menuOptions;
private Node defaultCenterNode = new Label("Example node 1");
@Override
public void start(Stage primaryStage) throws Exception {
menuOptions = new LinkedHashMap<>();
menuOptions.put("Main Menu", defaultCenterNode);
menuOptions.put("History", new Label("Example node 2"));
menuOptions.put("Office Info", new Label("Example node 3"));
menuOptions.put("Configuration", new Label("Example node 4"));
BorderPane root = new BorderPane();
root.setCenter(defaultCenterNode);
VBox menuLayout = new VBox();
for (String key : menuOptions.keySet()) {
Button button = new Button(key);
button.setMaxWidth(Double.MAX_VALUE);
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
root.setCenter(menuOptions.get(key));
}
});
menuLayout.getChildren().add(button);
}
root.setLeft(menuLayout);
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);
primaryStage.setTitle("BorderPane Example");
primaryStage.setResizable(false);
primaryStage.sizeToScene();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
我试图找到一种方法,可以将WinAnsiEncoding更改为Unicode,我试着像这样设置字体, 对于简单的文本,这很好,我可以看到Helvetica的字体变化,但是如果文本包含UTF-8字符(例如,U+0083等),我只会看到抛出以下异常, java.lang.IllegalArgumentException:U+0083在此字体的编码中不可用:WinAnsiEncoding org.apa
html标记被忽略。我想为html标记(如table,br)进行漂亮的打印。 你用什么简单的方法来做这件事?
在我正在工作的项目中,我得到了以下错误,我不知道如何在Android Studio上从JRE更改为JDK。
问题内容: 我从机器可读代码中获取日期格式为YYMMDD,如何将其更改为YYYY-MM- DD?例如我得到871223(YYMMDD)我想将其更改为1987-12-23(YYYY-MM-DD),这可能吗?谁能帮我一些示例代码? 问题答案: 该代码是这样的:
我有一个dataframe有两列(C,D)被定义为string列类型,但列中的数据实际上是日期。例如,C列的日期为“01-apr-2015”,而D列的日期为“20150401”。我想将这些数据更改为日期列类型,但我没有找到一个好的方法。我查看了在Spark SQL的DataFrame中将string列类型转换为Date列类型所需的堆栈溢出。日期格式可以是“01-apr-2015”,我看了这篇文章,
下面是我做的方式: 我只是想知道,这是正确的方法吗,因为在运行逻辑回归时,我得到了一些错误,所以我想知道,这是麻烦的原因吗。