【问题标题】:java swing with no generated code没有生成代码的java swing
【发布时间】:2016-06-08 17:44:14
【问题描述】:

我正在使用 Netbeans 8.0.2 我想知道是否有任何方法可以在没有生成代码的情况下创建 java Jframe,或者是否有任何方法可以编辑该代码

所以要摆脱这个(这是自动生成的代码):

   // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );
}// </editor-fold> 

【问题讨论】:

    标签: java swing netbeans-8


    【解决方案1】:

    我想知道是否有任何方法可以在没有生成代码的情况下创建 java Jframe

    是的:

    JFrame myFrame = new JFrame("My Frame"):
    

    现在我们完成了 easy 部分。

    当您不使用 NetBeans 拖放式 GUI 构建器时,对您来说更难的部分可能是学习如何创建组件并将其放置到您的 GUI 中,并且要成功地做到这一点,您需要学习所有关于布局管理器。请前往教程:Laying out Components within a Container

    其他关键位:

    • 尽可能避免使用 GroupLayout,因为这不是用于手动创建代码,而是用于 IDE 代码创建。这并不是说它不能使用,但它既不简单也不直观,当然不应该是第一个使用的布局管理器。
    • 请记住,嵌套 JPanel 很容易,并且每个 JPanel 都可以使用自己的布局管理器。这使得使用简单的布局管理器创建复杂的 GUI 变得容易。
    • 最好将您的 GUI 创建用于创建 JPanel,而不是扩展 JFrame。 JPanel 可以放入 JFrames、JDialogs、与 CardLayout 交换、放入 JOptionPanes、放入其他 JFrames。最好在需要时和需要的地方创建一个 JFrame,然后将 JPanel 放入其中。

    【讨论】:

      【解决方案2】:

      好吧,您可以通过自己的方法而不是 initComponents() 添加组件。

      public class Test extends JFrame
      {
          public Test()
          {
              initComponents();
              doMyCustomComponents();
          }
      
          public void doMyCustomComponents()
          {
              JFrame frame = new JFrame("Frame");
              //do whatever you need to.
              ...
              ...
              ...
      
          }
      }
      

      注意。这要复杂得多,因为您实际上是在自己编写“设计器”代码。您需要布局 UI 并管理 initComponents 原本会为您完成的所有工作。

      【讨论】:

        【解决方案3】:

        自动生成的代码由 Netbeans 创建,有关只读代码部分的信息保存在 java 文件中。

        您看不到这些 cmets,因为它们被 Netbeans 自动从可视源中删除以进行演示。

        您可以通过单击工具 > 模板 > Swing GUI 表单来修改自动生成,然后右键单击要修改的那个。

        请注意,这适用于所有未来的自动生成,而不是当前生成的表单。

        要删除或修改一个文件的那些只读部分,您需要在 Netbeans 之外打开该文件并删除:

        //GEN-BEGIN:initComponents
        

        //GEN-END:initComponents
        

        从您要从中删除只读属性的部分。然后您可以随意修改或删除它们。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-01-06
          • 1970-01-01
          • 2012-11-08
          • 1970-01-01
          • 2023-03-19
          • 2013-07-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多