以下代碼使用GridLayout展示了JLabel。 GridLayout的參數如下:行,列,水平間隙,垂直間隙。在下面的例子中,我在標籤之間垂直和水平方向都有3個像素的間隙。我可以更換標籤嗎?或者我可以給一個圖形用戶界面和ID?像在HTML中?
要使用圖像而不是數字,您可以將ImageIcon傳遞給JLabel的構造函數而不是文本。
import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.border.BevelBorder;
public class FrameTest {
public static void main(String[] args) {
final JFrame f = new JFrame("Frame Test");
JPanel panel = new JPanel(new GridLayout(4, 4, 3, 3));
for (int i = 0; i < 16; i++) {
JLabel l = new JLabel("" + i, JLabel.CENTER);
// JLabel l = new JLabel(new ImageIcon("image_file.png"),
// JLabel.CENTER);
l.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
l.setFont(l.getFont().deriveFont(20f));
panel.add(l);
}
f.setContentPane(panel);
f.setSize(200, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
在代碼中的小應用程序建立像一個堆棧,但我想讓它更換一樣,如果我有一個移動機器人,我只想要替換其中機器人移動,而不是建立一個全新的標籤網格?或者我可以用java中的任何其他GUI來做到這一點?
你也可以改變標籤上的文字 – SomeJavaGuy
或者乾脆交換ImageIcons。 –
是啊,但它變得很難,如果有路上的塊,更像AI的東西-_- –