我希望能够生成一个地图,在面板上的坐标位置放置小JLabels。问题是我需要它们是随机生成的,所以我不知道我会有多少。有没有办法做到这一点?
我希望这不会打破Java编程的任何禁忌--我是自学的。
*编辑:我知道我很含糊--我的程序庞大而笨重,而且我已经开发了自己的约定(我确信这会激怒真正的java程序员:-P)我应该指定我有一个类位置,并且我可以很容易地生成随机位置。我遇到的麻烦是为每个位置创建一个新的jLabel。这就是我所拥有的:
//Method called after a new Location has been created, to add it to the map
pub
我有一个扩展JPanel的类。在面板上,我为图片添加了一个JLabel,为文本添加了几个JTextArea (setEditable,setCursor,setOpaque,setFocusable to false)。这个类的目的是以列表的方式,从上到下。当用户单击其中一个JPanels时,根据所选项目(JPanel),应该会发生一些操作。我已经添加了一个工作的addMouseListener,但它不会注册点击,如果用户点击有文本的地方。如果我将JTextArea更改为JLabel,它可以工作,但我使用JTexArea的原因是因为我想要/需要wordwrap。有什么建议吗?谢谢。
我的问题归结为: Swing编程中的标准结构是让侦听器控制新组件(例如新的JPanel)以进行显示和输入,并让该新组件的侦听器控制用于显示和输入的新组件,以此类推吗?或者,Java需要恢复到某种统一的类,将所有Swing组件按过程顺序绑定在一起吗?
目前,在仅使用一个JFrame的应用程序中,在侦听器中,初始的JFrame对象将作为参数传递给所有的JPanels,因此它们的侦听器可以调用removeall()来清除新JPanel的框架。例如,如下所示的简短代码
public class MainFrame {
JFrame jfrm;
public MainFrame() {