作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是编码新手,我遇到了这个问题:我想将 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) 但它不起作用..:/
最佳答案
简短的回答是,不要,有点......
你有两个基本选择,你可以允许 Cat
为 Map
提供所需的信息来决定应该显示谁最好,例如,有一个 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/
我是一名优秀的程序员,十分优秀!