问题描述
几个小时以来,我试图创建一个具有以下行为的 JFrame: 我有一个标题(可能包含一个图像) - 这在顶部居中。 -> 检查 这个 JFrame 的其余部分应该用 JPanel 填充。
第一个 JPanel 应该放在顶部的中央。第二个 JPanel 应该放在第一个下面,依此类推。当第一个 JPanel 用完屏幕时,需要创建第二行。 我不在乎它们是否被重新排序。这是我准备展示我想要的图画: Example - I need one of that behaviors
我尝试了很多不同布局的组合......但仍然找不到合适的解决方案。
这是我的代码,除了我的面板从左到右而不是从上到下排序之外,它运行良好。:(
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class myFrameClass extends JFrame {
myFrameClass() {
super();
setLayout(new BorderLayout());
GraphicsDevice[] gs = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
GraphicsConfiguration[] gc = gs[0].getConfigurations();
setUndecorated(true);
setBackground(Color.WHITE);
setLocation(gc[0].getBounds().x,gc[0].getBounds().y);
setExtendedState(JFrame.MAXIMIZED_BOTH);
add(getHeader(),BorderLayout.norTH);
add(getPanels());
setVisible(true);
}
private JPanel getPanels() {
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
int cnt = 6;
for (int i = 0; i < cnt; i++) {
p.add(getPanel());
}
return p;
}
private JPanel getPanel() {
JPanel p = new JPanel();
p.setBackground(Color.RED);
p.setPreferredSize(new Dimension(200,200));
return p;
}
private JPanel getHeader() {
JPanel p = new JPanel();
p.add(new JLabel("Titel"));
return p;
}
public static void main(String args[]) {
new myFrameClass();
}
}
我也找到了 Oracle VerticalFlowLayout,但无法访问它。能帮到我吗?万一 - 如何使用它?
否则.. 如何使用 JFrame 来归档该行为? 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)