gpt4 book ai didi

java - 如何将 JLabel 添加到另一个类的 JFrame 中?

转载 作者:行者123 更新时间:2023-12-01 11:04:09 25 4
gpt4 key购买 nike

我是编码新手,我遇到了这个问题:我想将 JLabel 添加到我在不同类中创建的 JFrame 中。这是代码。我不明白如何正确地做到这一点,但如果它们采用相同的方法,我就会知道该怎么做。

map :

import javax.swing.JFrame;

public class Map {

public static void main(String[] args) {
map();

}

private static void map() {
JFrame window = new JFrame("Run Kitty Run!");
window.setVisible(true);
window.setSize(1000, 500);

}

}

猫:

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Cat
{
//instance variables
ImageIcon pic;

public Cat()
{
//constructor
pic = new ImageIcon("/Users/dell/Desktop/runKittyRun/cat.png");

}

public static void main(String[] args) {
// TODO Auto-generated method stub
}

public void draw()
{
JPanel panel = new JPanel();
JLabel label = new JLabel(pic);
panel.add(label);
panel.setVisible(true);
}

}

我尝试执行 windows.add(label) 但它不起作用..:/

最佳答案

简短的回答是,不要,有点......

你有两个基本选择,你可以允许 CatMap 提供所需的信息来决定应该显示谁最好,例如,有一个 getter返回图像

或者,您可以设计 Cat,以便它可以轻松添加到 Map

public class Cat extends JPanel
{
//instance variables
ImageIcon pic;

public Cat()
{
//constructor
// Absolute file references are a bad idea by the way
pic = new ImageIcon("/Users/dell/Desktop/runKittyRun/cat.png");
setLayout(new BorderLayout());
JLabel label = new JLabel(pic);
add(label);
}

}

然后只需在需要时创建 Cat 实例并将其添加到您想要的任何容器中...

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Map {

public static void main(String[] args) {
new Map();
}

private static void map() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}

JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Cat());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}

关于java - 如何将 JLabel 添加到另一个类的 JFrame 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com