当前位置: 首页 > 知识库问答 >
问题:

javaguiswing编程

邢起运
2023-03-14

我是初学者。我可以在一个JFrame中有多个布局吗?我想用java做一个井字游戏项目,并给它添加一个图形用户界面,所以除了3x3网格之外,我还想要一个JLabel和一个J按钮。那么,我如何构建网格以及添加菜单和单选按钮呢?我应该使用哪种布局?

共有2个答案

公冶兴文
2023-03-14

我建议使用TableLayout作为LayoutManager:它允许您通过非常简单的配置来指定各种组件应放置在容器中的位置。

请注意,您不需要为根容器使用单个布局来解决布局问题:您可以始终将一个JPanel添加到具有自己的布局及其子组件的容器中。

楚宏胜
2023-03-14

您必须处理容器和布局。在容器中,可以添加任意多的子级,并且布局与容器相关联,以提供一种以图形方式排列子级的方法。

容器提供逻辑聚合。布局为聚合提供图形化外观。

您可能需要有一个容器(main),其中可能有一个包含标签和按钮的工具栏,另一个容器(secondary)中有一个网格。在这种情况下,将有三个容器:2个面板和一个工具栏。工具栏有自己的布局,但必须为面板指定布局。在主工具栏中,边界布局似乎是合适的(在工具栏的北面,在面板/网格的中间)。在二级面板中,网格布局应具有内置按钮的功能。

 类似资料:
  • 技术的学习是一个登山的过程。第一章是最为平坦的山脚道路。而从这一章开始,则是正式的爬坡。无论是我写作还是你阅读,都需要付出比第一章更多的代价。那么问题就是,付出更多的精力学习模板是否值得? 这个问题很功利,但是一针见血。因为技术的根本目的在于解决需求。那C++的模板能做什么? 一个高(树)大(新)上(风)的回答是,C++里面的模板,犹如C中的宏、C#和Java中的自省(restropection)

  • 问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是先了解他们的知识,然后通过

  • 编辑#2:因为它看起来像一个bug,我已经在javaFx jira中发布了一个bug报告。您必须拥有一个帐户才能访问该问题。如果有新的信息,我会及时更新这篇文章。 原始帖子:我有一个简单的UI,带有一个按钮和一个树状视图。如果按钮被按下,应该会有一个新的项目添加到树视图。此项一出现在树中就应可编辑。 我使用的CellFactory是JavaFXAPI的一部分。 如果我看看api-留档(TreeVi

  • 比较传统的服务端程序(PHP、FAST CGI 等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放。由于进程创建、销毁对资源占用比较高,所以很多语言都通过常驻进程、线程等方式降低资源开销。即使是资源占用最小的线程,当并发数量超过 1K 的时候,操作系统的处理能力就开始出现明显下降,因为有太多的 CPU 时间都消耗在系统上下文切换。 由此催生了 C10K 编程

  • 元编程 避免无谓的元编程。 当编写程序库时,不要使核心类混乱(不要使用 monkey patch)。 对于 class_eval 方法,倾向使用区块形式,而不是字符串插值形式。 当使用字符串插值形式时,总是提供 __FILE__ 及 __LINE__,以使你的调用栈看起来具有意义: class_eval 'def use_relative_model_naming?; true; end', __

  • 1 台阶问题/斐波那契 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in ca