- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 java swing 程序编写一些代码,但我的程序抛出错误。我查看了有类似问题的帖子,但没有一个适用于这种情况。我究竟做错了什么?
我已将面板重新排列为更符合逻辑的格式,但没有帮助。
这是我的代码,问题在评论中指出。每个缩进都是另一个面板级别。
BaseballStats()
{
JFrame myFrame = new JFrame();
FlowLayout myLayout = new FlowLayout();
myFrame.setLayout(myLayout);
// configure JFrame with basic settings
myFrame.setTitle("JFrame Window");
myFrame.setSize(400,200);
myFrame.setLocation(200, 300);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel myPanel = (JPanel)myFrame.getContentPane();
myPanel.setSize(200,200);
myPanel.setLayout(new BorderLayout());
JPanel topmiddlePanel = new JPanel();
topmiddlePanel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.Y_AXIS));
JPanel game1panel = new JPanel();
game1panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
game1panel.setAlignmentX(Component.TOP_ALIGNMENT);
JLabel G1Label = new JLabel("Game 1 hits:");
G1Label.setAlignmentX(Component.LEFT_ALIGNMENT);
//problem here ---->// game1panel.add(G1Label);
JSpinner G1Spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1));
G1Spinner.setAlignmentX(Component.RIGHT_ALIGNMENT);
game1panel.add(G1Spinner);
topmiddlePanel.add(game1panel);
JPanel game2panel = new JPanel();
game2panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
game2panel.setAlignmentX(Component.TOP_ALIGNMENT);
JLabel G2Label = new JLabel("Game 2 hits:");
G2Label.setAlignmentX(Component.LEFT_ALIGNMENT);
game2panel.add(G2Label);
JSpinner G2Spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1));
G2Spinner.setAlignmentX(Component.RIGHT_ALIGNMENT);
game2panel.add(G2Spinner);
topmiddlePanel.add(game2panel);
JPanel game3panel = new JPanel();
game3panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
game3panel.setAlignmentX(Component.CENTER_ALIGNMENT);
JLabel G3Label = new JLabel("Game 3 hits:");
G3Label.setAlignmentX(Component.LEFT_ALIGNMENT);
game3panel.add(G3Label);
JSpinner G3Spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1));
G3Spinner.setAlignmentX(Component.RIGHT_ALIGNMENT);
game3panel.add(G3Spinner);
topmiddlePanel.add(game3panel);
JPanel game4panel = new JPanel();
game4panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
game4panel.setAlignmentX(Component.BOTTOM_ALIGNMENT);
JLabel G4Label = new JLabel("Game 4 hits:");
G4Label.setAlignmentX(Component.LEFT_ALIGNMENT);
game4panel.add(G4Label);
JSpinner G4Spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1));
G4Spinner.setAlignmentX(Component.RIGHT_ALIGNMENT);
game4panel.add(G4Spinner);
topmiddlePanel.add(game4panel);
JPanel game5panel = new JPanel();
game5panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
game5panel.setAlignmentX(Component.BOTTOM_ALIGNMENT);
JLabel G5Label = new JLabel("Game 5 hits:");
G5Label.setAlignmentX(Component.LEFT_ALIGNMENT);
game5panel.add(G5Label);
JSpinner G5Spinner = new JSpinner(new SpinnerNumberModel(1,1,5,1));
G5Spinner.setAlignmentX(Component.RIGHT_ALIGNMENT);
game3panel.add(G5Spinner);
topmiddlePanel.add(game5panel);
myPanel.add(topmiddlePanel, BorderLayout.CENTER);
它应该生成一个整体面板,带有 3 个子面板(其中 2 个未显示)。所示面板应在盒式布局中具有 5 个辅助面板。每个面板都有一个标签和一个流中的旋转器。
感谢您的帮助!
最佳答案
BoxLayout
有点特殊,因为布局需要给出它正在布局的组件实例。 “BoxLayout 无法共享”异常始终表示已使用特定组件创建了 BoxLayout 实例,但随后将其作为布局添加到不同的组件。
在您的情况下,相关行是:
JPanel topmiddlePanel = new JPanel();
JPanel game1panel = new JPanel();
game1panel.setLayout(new BoxLayout(topmiddlePanel, BoxLayout.X_AXIS));
看到 BoxLayout
是用 topmiddlePanel
实例化的,但随后在 game1panel
中设置为布局?
我不会提供更正的代码,因为我不确定在这种情况下您到底想要做什么,但正确的解决方案必须采用以下形式:
x.setLayout(new BoxLayout(x, ...))
关于java - “BoxLayout 无法与 .add 共享”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56041635/
以下用于布局组件的代码返回错误 public class MainPanel extends JPanel { private JTextField txt1, txt2; priva
我试图将 4 个水平盒子布局以垂直方式堆叠在 BoxLayout 中。 我的 KV 文件: : BoxLayout: size: root.size pos:
我知道这里有很多 BoxLayout 问题,但是我找不到可以解决我的问题的问题。我需要我的 ScoreDescPanel 来在彼此正下方显示每个标签(如列表),但是我在使用 BoxLayout 时遇到
我正在使用 BoxLayout 来定位服务器 GUI 的 GUI 元素。我的 JLabels 发生了一件奇怪的事情。我想知道为什么当我将字符串附加到 JTextArea 时,JLabels 会从其原始
我正在尝试制作一个简单的计算器,以熟悉我刚刚在计算机科学入门类(class)中学到的 GUI 的创建。我在按照我想要的方式排列 GUI 时遇到问题。我认为 BoxLayout 是完美的,但每当我尝试使
我有一个非常简单的自定义组件。它的首选最大尺寸为 100x100,并且只是一个红色矩形。我将其添加到使用框布局的 JPanel 中。我预计自定义组件的大小为 100x100,但实际上它是 50x100
我刚刚开始摆弄 BoxLayout 管理器。 我制作了两个相邻的按钮,第三个按钮应该转到下一行(前两个按钮下方),前两个按钮应该位于框架的顶部。 我怎样才能做到这一点? 这是我当前的代码 Bo
我的这段代码似乎抛出了 IllegalComponentException,但我不确定为什么。归结为以下几行代码: JRadioButton setRed = new JRadioButton(“Re
查看了一些以前与我的主题相关的帖子,但也无济于事。 尝试使用 BoxLayout 对齐组件但我无法让它发挥作用。我已经修改了一段时间,得到了不同的结果,但我无法弄清楚。我用的是默认的FlowLayou
我有两个 JPanel,我想将它们排列在一个更大的 JPanel 内部,一个叠在另一个之上。 “panel_controls”覆盖.getPreferredSize()。代码: public fina
你好,我正在尝试以与声明 BorderLayout 相同的方式声明 BoxLayout 声明borderlayout的方式 JPanel textFiled = new JPanel(new Bord
如所附屏幕截图所示 - 黄线来自底层 BoxLayout 面向的 JPanel。更改为 BorderLayout 删除黄线: 代码示例如下: import java.awt.BorderLayout;
是的,我用谷歌搜索了大约 30 分钟。是的,stackoverflow 中有 2 个关于该主题的不同帖子,但这些帖子并没有为我的问题提供任何解决方案。 我正在使用相当多的带有 BoxLayout 的面
我正在尝试在我的程序中制作 BoxLayout 布局。我使用 Eclipse,所以当我输入这些行时, JTextArea fntxt = new JTextArea(1, 20); JTextArea
我正在创建一个具有多个聊天的消息传递程序。在聊天窗口的一侧有一个 JPanel,其中包含用于切换聊天的所有按钮的列表数组。我无法使侧面板中的所有按钮具有相同的宽度,无论它们包含什么。但无论我尝试什么似
我似乎无法在网上找到解决方案来解释为什么我在尝试运行时遇到此错误 我正在为不同的程序制作一个简单的测试系统,当按下按钮时将在文本框中产生值。我希望它们位于不同的行以使其更清晰,所以我研究了布局。我认为
我试图弄清楚如何在运行时将项目插入到 BoxLayout...或使用不同的小部件/面板/布局实现类似的效果。 应用程序窗口的设计是垂直堆叠多个面板(BoxLayout.Y_AXIS)。然后,用户可以插
我正在尝试使用 BoxLayout 而不是我的 GridLayout 代码: setLayout (new GridLayout (5, 2)); 除了我注意到,当你做 BoxLayout 时,你需要
谁能帮帮我。为什么标签“当前”没有在面板/框架中左对齐? public static void main(String[] args) { JFrame TFrame =
我正在尝试沿面板中心的垂直轴对齐多个元素,而 BoxLayout 似乎正是我所需要的。但是,当添加的所有元素都具有奇数宽度时,它似乎会做一些奇怪的事情。 这是演示这种古怪行为的 SSCCE: impo
我是一名优秀的程序员,十分优秀!