chi*_*lin 3 java arrays swing margin jpanel
我正在从事计算机科学项目,但我无法找到解决问题的方法.我正在创建一个JPanel包含图像的二维数组GridLayout.我想删除所有面板之间的填充/边距,使其无缝地流入单个图像.但是,setHGap和setVGap方法似乎对我没有帮助.我很感激任何回应.谢谢.
import java.awt.GridLayout;
import java.util.Map;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MapArray {
static JPanel[][] tiles = new JPanel[11][11];
public MapArray() {
}
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = Map.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setSize(325, 300);
GridLayout layout = new GridLayout(10, 10);
frame.setLayout(layout);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
tiles[i][j] = new JPanel();
tiles[i][j].add(new JLabel(
createImageIcon("tile-1.png")));
frame.add(tiles[i][j]);
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.validate();
frame.repaint();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
几点说明:
给每个小组一个GridLayout.
将数组长度用于循环限制.
尽可能重新考虑常数.
码:
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MapArray {
private static final int SIZE = 4;
private static final JPanel[][] tiles = new JPanel[SIZE][SIZE];
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setLayout(new GridLayout(SIZE, SIZE));
for (int i = 0; i < tiles.length; i++) {
for (int j = 0; j < tiles[0].length; j++) {
tiles[i][j] = new JPanel(new GridLayout());
tiles[i][j].add(new JLabel(
new ImageIcon("image.gif")));
frame.add(tiles[i][j]);
}
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |