好吧,我正在尝试创建一个从扫描仪获取 System.in 的程序,将输入放在一个字符串中,然后根据输入创建一个按钮布局。我对 Java 很陌生,而且有点自学,所以如果这看起来很时髦,那是因为我不是专业人士:
else if(wordReader.endsWith("\r")){
//Create grid layout (one below other)
GridLayout buttonReturn = new GridLayout(0,i);
contentPane.setLayout(buttonReturn);
System.out.println("This has a new line value");
i++;
wordReader.replaceAll("\r","");
buttonVal = new JButton (wordReader);
buttonVal.addActionListener(new ButtonListener());
buttonVal.setEnabled(true);
contentPane.add(buttonVal, BorderLayout.NORTH);
Border emptyBorder = BorderFactory.createEmptyBorder();
buttonVal.setBorder(emptyBorder);
}
else {
//Create button layout(side by side)
FlowLayout buttonLayout = new FlowLayout();
contentPane.setLayout(buttonLayout);
contentPane.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
buttonVal = new JButton (wordReader);
buttonVal.addActionListener(new ButtonListener());
buttonVal.setEnabled(true);
contentPane.add(buttonVal, BorderLayout.NORTH);
Border emptyBorder = BorderFactory.createEmptyBorder();
buttonVal.setBorder(emptyBorder);
}
我的问题:我想做的是为每个单词创建一个按钮,但以类似于纸张格式的格式显示这些按钮。也就是说,当一个人按下回车键时,我不再需要 FlowLayout(并排),而是想现在将下一个按钮与回车键移到前一个按钮下方。这可能吗?我试图从 FlowLayout 转到 GridLayout 以移动下面的下一个按钮,但是从阅读中我什至不确定这是可能的。有没有办法做到这一点?
有没有一种方法可以检测回车按钮而不在控制台中执行,现在我让他们在输入中输入 \r 作为回车而不是按回车键?
我浏览了许多说明、文章、论坛和问答帖子(包括在本网站上),但似乎找不到任何可以让我做我想做的事的东西。稍后我将这样做是为了从文件而不是 System.in 中读取,所以如果这更容易解释,那么请随意尝试:) 同样我在这方面很新,而且几乎没有接受过正规培训,所以很愚蠢行话下来将不胜感激。非常感谢大家。