我不知道如何进行这项工作。
我创建了一个主类,在 JFrame 中扩展。 如果我使用draw() 和paint() 方法运行程序来绘制某些内容,我的标签将不可见。如果我只运行 Main() 类而不使用draw() 和paint() 方法,它就可以工作。
我正在尝试使用 Swing 组件,但这真的很难(我真是个菜鸟 T.T)。
请你帮帮我好吗?
我想看到矩形顶部的标签。
public class Main extends JFrame {
JLabel label;
public Main() {
setSize(400, 300);
setTitle("Title");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
label = new JLabel("Text inside");
add(label, BorderLayout.NORTH);
}
public void paint(Graphics g){
Image img = createImage(getWidth(), getHeight());
Graphics gr = img.getGraphics();
draw(gr);
g.drawImage(img, 0, 0, this);
}
public void draw(Graphics g){
g.drawRect(100, 100, 200, 100);
}
public static void main(String[] args) {
Main start = new Main();
}
}
最佳答案
有几件事:
在显示 JFrame 之前将添加的标签向上移动,并将标签添加到 contentPane 而不是直接添加到 JFrame。
当前您的图像覆盖了所有内容,因为图像的宽度和高度等于您的框架。我不确定你想通过用矩形绘制空白图像来实现什么目的。您可以直接在 JFrame 本身上绘制矩形。
如果您打算将图像设置为背景并在其上方显示标签,那么您需要采取不同的做法。您需要创建一个包含所需图像的 JLabel 并将其添加为 contentPane。
希望这些建议能对您有所帮助。
关于java - 在绘图顶部显示 JLabel 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939775/