- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试这样做:
但是如果我使用GridLayout,高度会很小
PanelPost.setLayout(new GridLayout(20, 1, 0, 12));
for(int y=0;y<15;y++){
JPanel p=new JPanel();
p.setBackground(Color.RED);
p.setLayout(null);
p.setSize(PanelPost.getWidth(),150);
PanelPost.add(p);
}
如果我使用 FlowLayout,只显示一些点使用 BoxLayout
setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
面板位于中心,不考虑宽度和高度如果我使用 setLayout(null) 则滚动不起作用做这个的最好方式是什么? :C
最佳答案
你的问题从这里开始 -> p.setLayout(null);
。 GridLayout将使用组件的preferredSize来确定它想要使用的单元格大小。该值由面板的布局管理器确定...您现在已放弃...
避免使用 null
布局,像素完美布局是现代 UI 设计中的一种幻觉。影响组件个体尺寸的因素太多,您无法控制其中任何一个。 Swing 的设计初衷是与布局管理器一起工作,放弃它们将导致无穷无尽的问题,您将花费越来越多的时间来尝试纠正
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.Scrollable;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class Test {
public static void main(String[] args) {
new Test();
}
public Test() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(new ListOfStuffPane()));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class ListOfStuffPane extends JPanel implements Scrollable {
public ListOfStuffPane() {
setLayout(new GridLayout(20, 1, 0, 12));
for (int y = 0; y < 15; y++) {
JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
p.setBackground(Color.RED);
p.add(new JLabel("Boo"));
add(p);
}
}
@Override
public Dimension getPreferredScrollableViewportSize() {
return new Dimension(100, 200);
}
@Override
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) {
return 128;
}
@Override
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) {
return 128;
}
@Override
public boolean getScrollableTracksViewportWidth() {
return true;
}
@Override
public boolean getScrollableTracksViewportHeight() {
return false;
}
}
}
关于java - FlowLayout 还是 BoxLayout?在JAVA中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29272352/
public class MyFrame extends JFrame { public MyFrame(String title) { setSize(200, 200); setT
我有一个关于 QT 布局的小问题。 我有一个工具箱,我想用一些带有说明的可检查按钮来填充它。所以我创建了一个带有 QGridLayout 的 QWidget 并将 QButton 放在第一个单元格中,
我试图在 winform (C# .NET) 上获得一个非常简单的自动调整大小布局。我尝试过 TableLayoutPanels 和 FlowLayoutPanels 但没有任何效果。 我有一个用户控
我有一个关于 QT 布局的小问题。 我有一个工具箱,我想用一些带有说明的可检查按钮来填充它。所以我创建了一个带有 QGridLayout 的 QWidget 并将 QButton 放在第一个单元格中,
我正在尝试更改按钮大小,但是当我设置宽度时,即使高度有自己的值,高度也会自动更改。如何仅更改宽度(或高度)?我需要这个来我的“重置”和“计算”按钮。代码(没有不必要的其他代码) class Wind
是否有更简单的方法来删除 FlowLayout 中第一个组件前面的水平空间? 这基本上就是我的代码的样子: JPanel panel = new JPanel(new FlowLayout(FlowL
我有一个 flowlayout 面板,在调整大小事件中,我调整了 flowlayout 面板内所有控件的大小,使它们适合(flowlayoutpanel - 填充 - 滚动条宽度)的宽度。在某些调整大
所以,由于 FlowLayout(),我的 JFrame 没有按照我想要的方式运行,但我不知道还能用什么来修复这。它只会让我的 JButton 填满整个 JFrame。有没有办法让 FlowLayou
所以我有我的 Main,这是在里面完成的。 JFrame CF = new JFrame(); CF.setLayout(new BorderLayout()); CF.add(n
当我在具有流布局管理器的内容 Pane 中放置某些内容时,我会在该组件和内容 Pane 的边框之间获得空闲空间。 默认流布局的 hgap 和 wgap 非零,但将它们设置为零并不能解决问题。 注意:请
我在使用 UICollectionView 和相关布局时面临挑战。我正在尝试创建一个包含两列的垂直 UICollectionView,其中左右两列中的单元格的位置如图所示: 我确实设法毫无问题地创建了
我的 FlowLayout 确实将图片画得很小,所以我几乎看不到它们。 我的错误是什么? 我以后的计划是,它看起来像这样: 所以现在我正在研究内部流布局,它显示一行颜色分离或直方图。 publ
我有以下代码,可以在屏幕上生成两个单独的 .png。这些 .png 旨在通过鼠标移动,并且一切正常,除了当它们被拖动时,它们似乎位于某种类型的图层下方,并且当拖动超过一英寸时消失。非常感谢任何建议。
我正在使用 FlowLayout JPanel。当子组件高度不同时,面板看起来很难看。我正在寻找一种使它们顶部对齐的解决方案(类似于 HTML 中表格单元格的 valign="top")。 最佳答案
如标题中所述,我一直在尝试设置一种带有水平滚动的垂直流布局。布局中的组件将是 JLabel。让我画一张图: +-------------------------+ ========| ====
我正在使用 FlowLayout.CENTER 将字符串和一些复选框居中,但并没有将它们居中。我以前用过这个,效果很好。这是代码: import javax.swing.*; import java.
昨天我从这个网站的用户那里得到了很大的帮助,我决定在这里问另一个问题,希望你们能帮助我。我想编写一个包含组件的框架。它们需要位于 JPanel 上,并且 JPanel 应该位于 JScrollPane
我有两个面板: main_panel child_panel main_panel布局设置使用: main_panel.setLayout(flowlayout) 然后我添加了 child_panel
我想在 JTextField 和 JButtons 之间添加一些空间,我正在使用流布局,并且将不胜感激 文本字段和按钮将关闭,任何输入都会有帮助,我是新手 我正在制作一个计算器 代码 import j
我想将 FlowLayout 与 BorderLayout 内的 5 个标签一起作为北面板 (BorderLayout.NORTH),当我调整大小时窗口/框架我希望标签不消失而是移动到新行。 我一直在
我是一名优秀的程序员,十分优秀!