FlowLayout / GridLayout组合?

时间:2011-10-29 21:34:32

标签: java swing jbutton grid-layout flowlayout

好吧我正在尝试创建一个从扫描程序获取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在行话上下来将不胜感激。非常感谢大家。

1 个答案:

答案 0 :(得分:2)

您可以查看支持嵌入式组件的JTextPaneStyledDocument维护概念文档布局,而不是文字网格布局。示例可以在How to Use Editor Panes and Text Panes中找到。可以找到其他示例here