代码如下:
JPanel Top = new JPanel();
JPanel Bottom = new JPanel();
JScrollPane Scroll = new JScrollPane(Top,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,Scroll,Bottom);
后面还有一段和上面类似的代码,最后也得到了一个SplitPane,这两个SplitPane加入了一个TabbedPane。其中那个Top的Panel加入了很多Button,代码如下
ImageIcon icon = new ImageIcon( Editor.class.getClassLoader()
.getResource("data/icons/icon1.png"));
JButton button1 = new JButton(icon);
button1.setName("button1");
Top.add(button1);后面还加了很多个按钮,现在问题出来了,由于上面的Scroll禁止了左右滚动,但是加入的button却从第一行开始不断的往后排列,如有左右滚动还可以拉过去看,禁止了之后后面加入的button就看不见了。我希望的效果是button从左到右排列,到了右边界之后就往下排列而非继续往后排列。以前直接将Top和Bottom加入SplitPane的时候就是这样,一行刚好两个button。
请问如何实现这样的效果???????请赐教。
JPanel Top = new JPanel();
JPanel Bottom = new JPanel();
JScrollPane Scroll = new JScrollPane(Top,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,Scroll,Bottom);
后面还有一段和上面类似的代码,最后也得到了一个SplitPane,这两个SplitPane加入了一个TabbedPane。其中那个Top的Panel加入了很多Button,代码如下
ImageIcon icon = new ImageIcon( Editor.class.getClassLoader()
.getResource("data/icons/icon1.png"));
JButton button1 = new JButton(icon);
button1.setName("button1");
Top.add(button1);后面还加了很多个按钮,现在问题出来了,由于上面的Scroll禁止了左右滚动,但是加入的button却从第一行开始不断的往后排列,如有左右滚动还可以拉过去看,禁止了之后后面加入的button就看不见了。我希望的效果是button从左到右排列,到了右边界之后就往下排列而非继续往后排列。以前直接将Top和Bottom加入SplitPane的时候就是这样,一行刚好两个button。
请问如何实现这样的效果???????请赐教。
如果是可视化开发 改了布局 按钮放哪 还不是自己拖哪放哪吗?
按钮1
按钮2
按钮3
按钮4
按钮5
……我希望的是所有的按钮按照从左到右从上到下每行两个按钮的方式排列,即是这样的:按钮1 按钮2
按钮3 按钮4
按钮5 按钮6
……
我用Top.setSize(width,height)函数设了大小,宽度无论设什么值,就是设成1,界面没有任何变化,依然横向排列按钮。
import java.awt.*;
import javax.swing.*;public class ceshi extends JFrame{
public static void main(String[] args){
JFrame f=new JFrame();
//JButton b;
JPanel p=new JPanel();
p.setLayout(new GridLayout(10,2,4,4));
for(int q=0;q<20;q++){
p.add(new JButton(q+""));
}
f.add(p);
f.setSize(500,500);
f.setVisible(true);
ceshi c=new ceshi();
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}