我正在尝试将JTextPane封装在JButnel中的JButton内,JScrollPane&在JPanel中再次返回整个面板。以下是我的代码,但它会水平显示按钮。如何以及在哪里可以将这些按钮放入面板?答案似乎很明显,但我仍然无法做到正确。
JTextPane tp = new JTextPane();
JScrollPane sp = new JScrollPane();
SimpleAttributeSet attribs = new SimpleAttributeSet();
StyleConstants.setAlignment(attribs , StyleConstants.ALIGN_CENTER);
tp.setParagraphAttributes(attribs,true);
tp.setEditable(false);
tp.setOpaque(false);
tp.setPreferredSize(new Dimension (100,100));
JButton jb = new JButton();
jb.setPreferredSize(new Dimension(100, 100));
//jb.setHorizontalAlignment(SwingConstants.CENTER);
tp.setText(food_Name);
jb.add(tp);
panel1.add(sp);
sp.add(panel2);
panel2.add(jb);
答案 0 :(得分:1)
根据建议,您需要使用布局管理器。
FlowLayout - 从左到右,然后从上到下( 默认 )
BorderLayout-五个固定位置,北,南,东,西,中心
BoxLayout - 在单行或列中
GridLayout -with具有标准大小的行和列的网格单元格
边框布局的示例代码 - 在其他人的Java API上查看布局管理器
public MySupportPanel () { // constructor
setLayout( new BorderLayout() );
JButton b1 = new JButton("Button 1");
JButton b2 = new JButton("Button 2");
JButton b3 = new JButton("Button 3");
JButton b4 = new JButton("Button 4");
JButton b5 = new JButton("Button 5");
add(b1, BorderLayout.CENTER);
add(b2, BorderLayout.NORTH);
add(b3, BorderLayout.SOUTH);
add(b4, BorderLayout.EAST);
add(b5, BorderLayout.WEST);
}