Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用GridPane模拟终端_Java_Css_Javafx - Fatal编程技术网

Java 使用GridPane模拟终端

Java 使用GridPane模拟终端,java,css,javafx,Java,Css,Javafx,我正试图在我的项目中创建一个嵌入式终端窗口。“终端历史记录”窗格将填充一列标签(终端侦听文本字段,当用户按enter键时,该行将添加到历史记录中) 公共类终端扩展边框窗格{ 最终私有网格窗格历史窗格; 最终私有文本字段inputField; 公共航站楼(){ 超级setId(“终端家长”); historyPane=createHistoryPane(); inputField=createInputField(); super.setBottom(输入字段); 超级设置中心(历史窗格); }

我正试图在我的项目中创建一个嵌入式终端窗口。“终端历史记录”窗格将填充一列标签(终端侦听文本字段,当用户按enter键时,该行将添加到历史记录中)

公共类终端扩展边框窗格{
最终私有网格窗格历史窗格;
最终私有文本字段inputField;
公共航站楼(){
超级setId(“终端家长”);
historyPane=createHistoryPane();
inputField=createInputField();
super.setBottom(输入字段);
超级设置中心(历史窗格);
}
私有GridPane createHistoryPane(){
最终网格窗格=新网格窗格();
窗格.setId(“TerminalHistoryPane”);
返回窗格;
}
私有void addHistory(字符串str){
最终标签=新标签(str);
label.getStyleClass().add(“TerminalHistoryLabel”);
addRow(historyPane.getRowCount(),标签);
}
私有TextField createInputField(){
最终文本字段=新文本字段();
field.setId(“TerminalTextField”);
field.setOnKeyPressed((事件)->{
if(event.getCode()==KeyCode.ENTER){
addHistory(field.getText());
字段。清除();
}
} );
返回字段;
}
}
CSS

*{
-终端文本颜色:#FB0;
-终端前景色:#0FF;
-终端背景色:黑色;
}
#终端家长{
-背景色:黑色;
-外汇储备宽度:400;
}
#TerminalTextField{
-fx字体大小:粗体;
-fx字体系列:“FreeMono”;
-外汇字号:16;
-fx背景色:-终端背景色;
-fx边框颜色:-终端前景色;
-fx文本填充:-终端文本颜色;
}
#末端历史窗格玻璃{
-fx字体大小:粗体;
-fx字体系列:“FreeMono”;
-外汇字号:16;
-fx文本填充:-终端文本颜色;
-fx背景色:-终端背景色;
-fx边框颜色:-终端前景色;
}
.末端组织标签{
-fx文本填充:-终端文本颜色;
-fx字体系列:“FreeMono”;
}

目前,行从顶部开始,向下写入。当它们到达底部时,网格窗格开始随它们一起增长。相反,我希望将其翻转,以便第一行从底部开始,新行将旧行向上推(这可以通过手动将它们向上移动1来实现)。当它们到达窗格顶部时,我希望窗格可以滚动。

您可能应该使用ListView而不是GridPane。。。或只读文本区