很长一段时间以来,我一直在想什么时候使用JFrame和JPanel。有人通过教科书、面对面和互联网搜索告诉我一些原因,但当然,我需要查看Java文档才能发现JPanel具有paintComponent(Graphics);方法,它允许您指定对对象本身做什么,而不是JFrame。此外,JPanels是可嵌套的,允许使用比仅用一个容器实现的更复杂的图形。我还偶然发现JLabel也是一个容器。(它甚至有一个怪异的布局!)现在我的问题是:什么时候应该使用JLabel,什么时候应该使用JPanel?
//我知道您可以将JLabels放在JPanel中,但是偶然的是,JPanel比JLabel更昂贵。从长远来看,我计划制作一个收银员游戏,其中包括一些轻量级的容器,用于“钱”,点击后移动到客户的手中。我在考虑使用JLabels来表示货币金额(美元纸币和硬币),并使用JPanel作为交易的头顶视图。我还在考虑在“货币标签”本身上调用repaint() (据我所知,它可以模拟动画)。这是一个双重问题,但你会认为这是最便宜的方式吗?
发布于 2013-04-30 22:05:19
在很大程度上,JPanel是一个允许更好的组织的容器。当您需要组织JPanel的组件时,您应该使用JPanel并定义gui的布局。您还可以在彼此之间嵌套JPanels,等等。JLabels不能为要在JLabel中显示的其他组件定义布局。
发布于 2013-11-29 23:15:48
这是一个显示"Hello World!“的应用程序示例。不带引号:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
public class JFrame {
public static void main (strings args[]) {
JFrame frame = new JFrame();
String title = "Hello App";
frame.setTitle(title);
frame.setSize(300, 200);
frame.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panle = new JPanel();
frame.add(panle);
JLabel lable = new JLabel("Hello World!!!");
panle.add(lable);
}
}文件名为"JFrame.java“,不带引号。
https://stackoverflow.com/questions/15776910
复制相似问题