[英]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.