如何创建12x8摆动按钮阵列

时间:2013-12-07 11:19:10

标签: swing

我想知道是否有办法改变自动生成的源代码格式 通过GUI中的Net Beans IDE - applet应用程序。例如,源代码中项目的放置是关系的,但如果我想要它们的绝对坐标怎么办。我问这个问题是因为我需要这种格式的源代码,以便我可以轻松地更改源代码并可以做一些手动工作。更具体地说,我想创建一个12x8阵列的按钮组,它们之间没有间隙。但是使用IDE来执行此操作需要很长时间,实际上,我甚至无法将按钮放在它们之间。任何帮助高度赞赏!

2 个答案:

答案 0 :(得分:1)

手动拼凑很简单。 GUI构建器通常比它们的帮助更有害。

这是测试运行:

JButton Array Test

这是代码。我将这些类放在一个文件中,以便更容易粘贴。这些类应该在单独的文件中。

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ButtonArray implements Runnable {

    @Override
    public void run() {
        JFrame frame = new JFrame("JButton Array Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        ButtonPanel buttonPanel = new ButtonPanel();
        frame.add(buttonPanel.getMainPanel());

        frame.setLocationByPlatform(true);
//      frame.setSize(new Dimension(800, 600));
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new ButtonArray());
    }

    public class ButtonPanel { 

        private static final int WIDTH = 12;
        private static final int HEIGHT = 8;

        private JButton[][] buttonArray;

        private JPanel mainPanel;

        public ButtonPanel() {
            buttonArray = new JButton[WIDTH][HEIGHT];
            createPartControl();
        }

        private void createPartControl() {
            mainPanel = new JPanel();
            mainPanel.setLayout(new GridLayout(HEIGHT, WIDTH));

            for (int i = 0; i < HEIGHT; i++) {
                for (int j = 0; j < WIDTH; j++) {
                    buttonArray[j][i] = 
                            new JButton(createButtonText(j, i));
                    mainPanel.add(buttonArray[j][i]);
                }
            }
        }

        private String createButtonText(int j, int i) {
            StringBuilder builder = new StringBuilder();

            builder.append("(");
            builder.append(i);
            builder.append(", ");
            builder.append(j);
            builder.append(")");

            return builder.toString();
        }

        public JPanel getMainPanel() {
            return mainPanel;
        }
    }

}

答案 1 :(得分:0)

你需要为面板使用一些网格布局(例如FormLayout)来配置它,只需在那里添加所有按钮。