【问题标题】:Using a function to create multiple components and change line automatically [Java]使用函数创建多个组件并自动换行 [Java]
【发布时间】:2015-10-31 02:38:24
【问题描述】:

所以我已经为此浪费了几个小时,我似乎无法找到解决方案。

基本上我有一个 Jframe,里面有一个 Scrollpane 和一个面板 我在该面板内的一行中有 1 个 Jlabel、1 个 JTextField 和 1 个 JButton。 JButton 可以添加一个新的 JLabel、一个新的 JTextField 和一个新的 JButton,但我无法将它们定位在下一行。

我一直在搞乱布局,但没有一个适合我的需要,不幸的是我从来没有理解或学习过 java 的 GUI 是如何工作的。

每次点击时,如何在下一行继续添加这些组件(Jlabel、Jtextfields 和 Jbuttons)的最佳方式是什么?

这是我的代码:

private void BtnaddvariableActionPerformed(java.awt.event.ActionEvent evt) {                                               
        JLabel Lblvariablextra = new JLabel("Testing");
        PanelVariable.add(Lblvariablextra);
        ScrollPaneVariable.setViewportView(PanelVariable);
}   

代码仅包含标签tough的示例。

【问题讨论】:

  • “不幸的是,我从来没有理解或学习过 java 的 GUI 是如何工作的。”现在可能是最佳时机
  • 变量名不应以大写字符开头。
  • ControlAltDel,但我似乎也没有找到设计教程。
  • @user3740731 but i don't seem to find a toturial for design either 什么???我给了你一个 Swing 教程的链接,里面有所有 Swing 组件的工作示例。

标签: java swing user-interface layout


【解决方案1】:

创建一个在创建 GUI 时添加到滚动窗格的主面板:

Box main = Box.createVerticalBox();
scrollPane.setViewportView( main );

然后在 ActionListener 中创建一个子面板,其中包含每次按下按钮时的 3 个组件:

JPanel child = new JPanel();
child.add( new JLabel("I'm a label") );
child.add( new JTextField(10) );
child.add( new JButton("Click Me") );
main.add(child);

阅读 Layout Manager 上的 Swing 教程部分,了解布局管理的工作原理。

【讨论】:

    猜你喜欢
    • 2022-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多