【发布时间】:2017-04-14 11:05:00
【问题描述】:
我想创建一个JFrame,我刚刚找到了完美的框架。
我想重新创建这个:
获取此帧的代码如下所示:
progressBar = new JProgressBar();
statusLbl = new JLabel();
statusLbl1 = new JLabel();
percentLbl = new JLabel();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setTitle("Auto-Updater");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
formWindowClosing(evt);
}
});
statusLbl.setText("Status:");
statusLbl1.setText("N/A");
percentLbl.setText("0%");
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(statusLbl).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(statusLbl1).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 304, 32767)
.addComponent(percentLbl)).addComponent(progressBar, GroupLayout.Alignment.TRAILING, -1, 380, 32767))
.addContainerGap()));
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING).addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(statusLbl1, -1, -1, 32767)
.addComponent(percentLbl))
.addComponent(statusLbl, -1, -1, 32767)).addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
.addComponent(progressBar, -2, 30, -2).addContainerGap(-1, 32767)));
pack();
但我认为这看起来很难看,可读性为零,所以我问你:如何使用不同的布局重新创建此框架,或者如何使用不同的布局使其可读?
【问题讨论】:
-
“如果您将状态:N/A 更改为 TitledBorder”是什么意思
-
好吧,我刚刚发现了什么是 TitledBorder,但我真的很喜欢 JFrame 的设计,就像现在一样。不过,我可以将百分比放在进度条中。顺便说一句,这个 JFrame 可以用任何布局制作吗?
-
抱歉浪费了您的时间。在回复您的评论之前,我应该先查一下。
-
一种成熟的复杂布局技术是不要在单个布局中使用单个
JPanel。而是使用多个嵌套的JPanels,每个都有不同的布局管理器。一篇很好的文章是Effective Layout Management。 -
@ThomasFritsch 好点。这里是another example of combining layouts。
标签: java swing jframe layout-manager grouplayout