好吧我正在尝试创建一个从扫描程序获取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 \ n作为回车输入而不是输入?
我浏览了大量的指导,文章,论坛和问答帖子(包括在这个网站上),但似乎找不到任何可以让我做我想做的事情。我稍后会这样做,从文件而不是System.in读取,所以如果这更容易解释,那么随意尝试:)再次,我很新,并没有正式的培训,所以dumbing在行话上下来将不胜感激。非常感谢大家。
答案 0 :(得分:2)
您可以查看支持嵌入式组件的JTextPane
。 StyledDocument
维护概念文档布局,而不是文字流或网格布局。示例可以在How to Use Editor Panes and Text Panes中找到。可以找到其他示例here。