- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了通过大学类(class),我需要使用 JAVA 和 swing API 编写一个软件。但是,我在按照我想要的方式放置组件时遇到一些问题:
我想在心情面板中放置一些组件: Like this
我应该为心情面板使用哪种布局,哪种布局是获得第二次绘制中的组件的最佳方式?
编辑:我目前正在尝试应用下面的解决方案,但遇到一些问题: Here
public MoodPanel(){
super();
this.setBackground(new Color(255, 255,0));
this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
this.choicePanel = new JPanel();
this.choicePanel.setLayout(new GridBagLayout());
this.choicePanel.setBackground(new Color(255, 0, 0));
GridBagConstraints c = new GridBagConstraints();
this.statPanel = new JPanel();
this.statPanel.setLayout(new BorderLayout());
this.lIdTweet= new JLabel();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridwidth=3;
c.gridx=0;
c.gridy=0;
c.weightx=0.0;
c.anchor =GridBagConstraints.FIRST_LINE_START;
this.choicePanel.add(this.lIdTweet,c);
this.moodGroup = new ButtonGroup();
this.JRBad = new JRadioButton("Mauvais");
this.JRBad.setActionCommand("0");
this.JRBad.setVisible(false);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx=0;
c.gridy=1;
c.weightx=0.0;
this.choicePanel.add(this.JRBad,c);
this.JRNeutral = new JRadioButton("Neutre");
this.JRNeutral.setActionCommand("2");
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx=1.0;
c.insets = new Insets(0,70, 0, 0);
this.choicePanel.add(this.JRNeutral,c);
this.JRNeutral.setVisible(false);
this.JRGood = new JRadioButton("Bon");
this.JRGood.setVisible(false);
this.JRGood.setActionCommand("4");
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx=0.0;
c.insets = new Insets(0,0, 0, 0);
this.choicePanel.add(this.JRGood,c);
this.moodGroup.add(this.JRBad);
this.moodGroup.add(this.JRNeutral);
this.moodGroup.add(this.JRGood);
this.buttonPanel = new JPanel();
this.buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
this.intializingListener();
this.btnAddToList = new JButton("Ajouter");
this.btnAddToList.addActionListener(OKAction);
this.MPClose= new JButton("Fermer");
this.MPClose.addActionListener(CancelAction);
this.buttonPanel.add(btnAddToList);
this.buttonPanel.add(MPClose);
this.buttonPanel.setVisible(false);
this.buttonPanel.setSize(new Dimension(this.buttonPanel.getPreferredSize().width,this.btnAddToList.getPreferredSize().height));
this.buttonPanel.setBackground(new Color(60, 90, 60));
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx=0;
c.gridy=1;
c.weightx=0.0;
c.gridwidth=3;
this.choicePanel.add(buttonPanel,c);
this.add(choicePanel,BorderLayout.NORTH);
this.add(statPanel,BorderLayout.SOUTH);
最佳答案
在设计布局时,您需要分解每个部分的需求和职责,虽然您实际上可以使用 GridBagLayout 来完成整个布局,但它可能已经过时了。
相反,您可以使用一系列复合布局,每个布局都会添加到先前布局的功能中,例如...
如果我们看一下主要布局,我或多或少会看到两个主要区域......
这只是尖叫BorderLayout
(再次GridBagLayout
可以工作)
现在,我们开始关注NORTH
部分
这里需要回答的问题是,这三个部分的高度相等吗?如果是,那么 GridLayout
可以工作,如果不是,那么我可能会倾向于 GridBagLayout
最后两部分几乎相同...
您需要回答这个问题,所有元素的水平空间是否都相同?如果它们的大小相同,那么您可以使用 GridLayout
,如果不是,您可以根据您的需要和愿望使用 FlowLayout
或 GridBagLayout
.
尽量不要查看“整个”UI,并尝试一步解决它,大多数时候,您希望将其分解为功能区域,这也将允许您将责任区域分开编写代码并生成自包含的工作单元,您可以根据这些工作单元创建类。
关于java - 需要帮助才能正确放置 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33052508/
我正在尝试用 C 语言编写一个使用 gstreamer 的 GTK+ 应用程序。 GTK+ 需要 gtk_main() 来执行。 gstreamer 需要 g_main_loop_run() 来执行。
我已经使用 apt-get 安装了 opencv。我得到了以下版本的opencv2,它工作正常: rover@rover_pi:/usr/lib/arm-linux-gnueabihf $ pytho
我有一个看起来像这样的 View 层次结构(基于其他答案和 Apple 的使用 UIScrollView 的高级 AutoLayout 指南): ScrollView 所需的2 个步骤是: 为 Scr
我尝试安装 udev。 udev 在 ./configure 期间给我一个错误 --exists: command not found configure: error: pkg-config and
我正在使用 SQLite 3。我有一个表,forums,有 150 行,还有一个表,posts,有大约 440 万行。每个帖子都属于一个论坛。 我想从每个论坛中选择最新帖子的时间戳。如果我使用 SEL
使用 go 和以下包: github.com/julienschmidt/httprouter github.com/shwoodard/jsonapi gopkg.in/mgo.v2/bson
The database仅包含 2 个表: 钱包(100 万行) 事务(1500 万行) CockroachDB 19.2.6 在 3 台 Ubuntu 机器上运行 每个 2vCPU 每个 8GB R
我很难理解为什么在下面的代码中直接调用 std::swap() 会导致编译错误,而使用 std::iter_swap 编译却没有任何错误. 来自 iter_swap() versus swap() -
我有一个非常简单的 SELECT *用 WHERE NOT EXISTS 查询条款。 SELECT * FROM "BMAN_TP3"."TT_SPLDR_55E63A28_59358" SELECT
我试图按部分组织我的 .css 文件,我需要从任何文件访问文件组中的任何类。在 Less 中,我可以毫无问题地创建一个包含所有文件导入的主文件,并且每个文件都导入主文件,但在 Sass 中,我收到一个
Microsoft.AspNet.SignalR.Redis 和 StackExchange.Redis.Extensions.Core 在同一个项目中使用。前者需要StackExchange.Red
这个问题在这里已经有了答案: Updating from Rails 4.0 to 4.1 gives sass-rails railties version conflicts (4 个答案) 关
我们有一些使用 Azure DevOps 发布管道部署到的现场服务器。我们已经使用这些发布管道几个月了,没有出现任何问题。今天,我们在下载该项目的工件时开始出现身份验证错误。 部署组中的节点显示在线,
Tip: instead of creating indexes here, run queries in your code – if you're missing any indexes, you
你能解释一下 Elm 下一个声明中的意思吗? (=>) = (,) 我在 Elm architecture tutorial 的例子中找到了它 最佳答案 这是中缀符号。实际上,这定义了一个函数 (=>
我需要一个 .NET 程序集查看器,它可以显示低级详细信息,例如元数据表内容等。 最佳答案 ildasm 是 IL 反汇编程序,具有低级托管元数据 token 信息。安装 Visual Studio
我有两个列表要在 Excel 中进行比较。这是一个很长的列表,我需要一个 excel 函数或 vba 代码来执行此操作。我已经没有想法了,因此转向你: **Old List** A
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
我正在学习 xml 和 xml 处理。我无法很好地理解命名空间的存在。 我了解到命名空间帮助我们在 xml 中分离相同命名的元素。我们不能通过具有相同名称的属性来区分元素吗?为什么命名空间很重要或需要
我搜索了 Azure 文档、各种社区论坛和 google,但没有找到关于需要在公司防火墙上打开哪些端口以允许 Azure 所有组件(blob、sql、compute、bus、publish)的简洁声明
我是一名优秀的程序员,十分优秀!