大家帮忙看看,java swing问题。

bmssesdn 2010-11-15 10:07:54
我循环了10次,有10个图片和复选框,但是图片就会相互覆盖,怎样让图片与图片之间有缝隙呢?

public class TwoL {

public TwoL(java.util.List<BufferedImage> bim){
final JDialog dlg=new JDialog((JFrame)null,true);
JPanel imgPanel=new JPanel(new BorderLayout());
JPanel cbPane=new JPanel(new GridLayout(0,2));
for(int i=0;i < bim.size();i++){
JLabel lb=new JLabel();
lb.setIcon(new ImageIcon(bim.get(i)));
JCheckBox cb=new JCheckBox("图片" + i);
cbPane.add(lb);
cbPane.add(cb);
}
JScrollPane sp=new JScrollPane(cbPane);
imgPanel.add(sp,BorderLayout.CENTER);

JPanel butPanel=new JPanel();
JButton ok=new JButton("确定");
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
JButton cancel=new JButton("取消");
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
butPanel.add(ok);
butPanel.add(cancel);
dlg.setUndecorated(true);
dlg.add(imgPanel);
dlg.add(butPanel,BorderLayout.SOUTH);
dlg.setSize(350,300);
dlg.setLocation(200,200);
dlg.setVisible(true);
}
public static void main(String[] args) {
List<BufferedImage> bim = new ArrayList<BufferedImage>();
for(int i=0;i<10;i++){
bim.add(ImageCut.abscutImg("c:/c.jpg",0,i*20,100,40));
}
new TwoL(bim);
}
...全文
121 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunyiz 2010-11-15
  • 打赏
  • 举报
回复
加一句lb.setPreferredSize(new Dimension(100,45));

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class TwoL {

public TwoL(java.util.List<BufferedImage> bim){
final JDialog dlg=new JDialog((JFrame)null,true);
JPanel imgPanel=new JPanel(new BorderLayout());
JPanel cbPane=new JPanel(new GridLayout(0,2));
for(int i=0;i < bim.size();i++){
JLabel lb=new JLabel();
lb.setPreferredSize(new Dimension(100,45));
lb.setIcon(new ImageIcon(bim.get(i)));
JCheckBox cb=new JCheckBox("图片" + i);
cbPane.add(lb);
cbPane.add(cb);
}
JScrollPane sp=new JScrollPane(cbPane);
imgPanel.add(sp,BorderLayout.CENTER);

JPanel butPanel=new JPanel();
JButton ok=new JButton("确定");
ok.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
JButton cancel=new JButton("取消");
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
butPanel.add(ok);
butPanel.add(cancel);
dlg.setUndecorated(true);
dlg.add(imgPanel);
dlg.add(butPanel,BorderLayout.SOUTH);
dlg.setSize(350,300);
dlg.setLocation(200,200);
dlg.setVisible(true);
}
public static void main(String[] args) {
List<BufferedImage> bim = new ArrayList<BufferedImage>();
for(int i=0;i<10;i++){
bim.add(ImageCut.abscutImg("c:/c.jpg",0,i*20,100,40));
}
new TwoL(bim);
}

}
houjin_cn 2010-11-15
  • 打赏
  • 举报
回复
这一行改一下
JPanel cbPane=new JPanel(new GridLayout(0,2));
改成
JPanel cbPane=new JPanel(new GridLayout(0,2,3,3));

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧