繁体   English   中英

Java中带有gridLayout的JPanel子类

[英]JPanel subclass with gridLayout in Java

我有JPanel的子类(MyPanel),我正在用它在按钮之间绘制线条。 画线是可行的,但是问题是当我使用MyPanel而不是JPanel时,gridLayout无法正常工作。 我想要的gridLayout是按钮之间的间距以及如何安排按钮的选择。 我设法在没有gridLayout的情况下将它们放置在网格中,但是我无法获得间距。 因此,我需要帮助的是使gridLayout正常工作,或者在没有gridLayout的情况下固定按钮之间的间距。 我拥有的所有按钮都已添加到gameBoardPanel中。

编辑:这是当前的样子:

在此处输入图片说明

我想要的是将按钮之间的间距增加25像素左右。

    class MyPanel extends JPanel {//The subclass
    public MyPanel(GridLayout gridLayout) {
        setPreferredSize(new Dimension(400,400));              
    }

    @Override
    public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        if(!drawline)  
            super.paintComponent(g);        

        else{
             g2.setStroke(new BasicStroke(3));
             g2.draw(new Line2D.Float(c,c,c2,d2));                  
        }
    }

这也是添加了按钮的面板。

    gameBoardPanel=new MyPanel(new GridLayout(yAxis,xAxis,25,25));//creation of a panel        using MyPanel

我没有问题使用GridLayout。 我不确定您的问题发生在哪里,但这是一个示例。 我正在使用具有25个间隙的5,5布局。

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


public class MyPanel extends JPanel{

    public MyPanel() {
        setLayout(new GridLayout(5, 5, 25, 25));
        for (int i = 0; i < 25; i++) {
            add(new JButton(" "));
        }
    }

    private static void createAndShowGui() {
        JFrame frame = new JFrame();
        frame.add(new MyPanel());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGui();

            }
        });
    }
}

我使用了您尝试使用的相同GridLayout。 所以我没有真正看到问题出在哪里

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM