我是JavaFX新手,正在尝试用GridPane做一个简单的按钮设计。
我不知道如何让一个按钮跨越多个列/行,而不把其他按钮推开。我一直在使用HBox和VBox将其他按钮组合在一起。我试过在按钮上设置Rowspan,但似乎不起作用。
看起来怎么样
我希望它看起来怎么样
这是我的代码:
import javafx.stage.*;
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
public class SimpleGUI extends Application {
public void start(Stage primaryStage) throws Exception {
GridPane root = new GridPane();
Scene scene = new Scene(root, 200, 200);
//Buttons
Button b1 = new Button("KNAPP 1");
Button b2 = new Button("KNAPP 2");
Button b3 = new Button("KNAPP 3");
Button b4 = new Button("KNAPP 4");
Button b5 = new Button("KNAPP 5");
Button b6 = new Button("KNAPP 6");
//Horizontal Box
HBox topButtons = new HBox();
topButtons.getChildren().add(b1);
topButtons.getChildren().add(b2);
topButtons.getChildren().add(b3);
//Vertical Box
VBox leftButtons = new VBox();
leftButtons.getChildren().add(b4);
leftButtons.getChildren().add(b5);
//Placement
GridPane.setConstraints(topButtons, 0,0);
GridPane.setConstraints(leftButtons, 0,1);
GridPane.setConstraints(b6, 1,1);
//Length (3 Columns, 2 Rows)
GridPane.setColumnSpan(topButtons, 3);
GridPane.setRowSpan(leftButtons, 2);
//Add them to the stage
root.getChildren().add(topButtons);
root.getChildren().add(leftButtons);
root.getChildren().add(b6);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args){
launch(args);
}
}
因为您使用的是网格窗格,所以实际上不需要HBox
和VBox
:
import javafx.stage.*;
import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
public class SimpleGUI extends Application {
public void start(Stage primaryStage) throws Exception {
GridPane root = new GridPane();
Scene scene = new Scene(root);
//Buttons
Button b1 = new Button("KNAPP 1");
Button b2 = new Button("KNAPP 2");
Button b3 = new Button("KNAPP 3");
Button b4 = new Button("KNAPP 4");
Button b5 = new Button("KNAPP 5");
Button b6 = new Button("KNAPP 6");
root.add(b1, 0, 0);
root.add(b2, 1, 0);
root.add(b3, 2, 0);
root.add(b4, 0, 1);
root.add(b5, 0, 2);
// node, columnIndex, rowIndex, columnSpan, rowSpan:
root.add(b6, 1, 1, 2, 2);
// allow button to grow:
b6.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args){
launch(args);
}
}
问题内容: 我试图弄清楚如何用Bootstrap做下面的网格。 我不确定如何创建跨越两行的框(数字1)。这些框按照其排列顺序以编程方式生成。方框1是欢迎消息。 关于最佳方法的任何想法吗? 问题答案: 对于Bootstrap 3: 对于Bootstrap 2:
我有一个Java程序,需要在多个类的多个点上从控制台获取用户输入。我试着在每节课上使用一台扫描仪,但当我关闭一台扫描仪时,它会关闭系统。所以我想在整个程序中使用相同的扫描仪。我在主类中打开了扫描仪,但在其他类中如何使用相同的扫描仪?
问题内容: 我有1个活动按钮。我想将此1按钮用于多个任务。 那我该怎么办? 如果我第一次按此按钮,则更改为2按钮 如果我按了第二次,那么它将更新我的数据 但是第一次只能工作第二次不能工作 看看我的代码我尝试了什么 您可以看到我的上面的代码,我可以使用按钮执行2个任务,但是只更改两个按钮,我将更改数据并单击按钮,然后它就无法执行 问题答案: 尝试这种方式,首先在活动类文件上声明全局变量,如下所示:
问题内容: 我正在尝试使列范围可用。具体来说,我正在寻找一个嵌套在另一个内部的方法,当用户单击以查看嵌套表时,它应该展开以向下推动下面的行并填充空白处。这类似于您在MS Access中可以嵌套表的情况,单击行上的“展开”按钮将向您显示嵌套表中的相应条目。 如果有人知道使用进行列跨度的方法,您能指出我正确的方向吗?或者,如果您知道执行此操作的其他方法,则欢迎您提出建议。该应用程序是使用Swing构建
所以我试图去有一个交错的布局,但列表中的第一项需要跨越两列。前两排也是固定高度。除了跨越两列的第一个项目,其他都正常工作。 我将RecyclerView.Adapter与StaggeredGridLayoutManager一起使用。它似乎不是开箱即用的功能。我假设我可以制作一个自定义布局管理器,但我不知道从哪里开始。我尝试过搜索,但我找不到任何关于如何让项目跨越多列的信息。 下图是我在列表中寻找的