我正在用 Swing 编写我的第一个 Java GUI。我正在尝试创建一个带有 10X10 点的面板并在这些点上画线。
问题是我只能创建上述之一。这意味着我可以创建一个 10X10 点的矩阵或创建线条。
这是我的代码:
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("DrawMatrix");
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new DrawRectPanel());
frame.setSize(240, 260);
frame.setVisible(false);
frame.getContentPane().add(new DrawLine());
frame.setVisible(true);
}
}
public class DrawRectPanel extends JPanel{
final static int DIST = 20;
final static int MAX_ROW = 11;
final static int MAX_COL = 11;
int i = 1;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
{
// Points matrix
int x = 0;
for(int row = 1; row < MAX_ROW; row++)
{
x = row * DIST;
for(int col = 1; col < MAX_COL; col++)
{
int y = col * DIST;
g.setColor(Color.blue);
g.drawLine(x,y,x,y+1);
}
}
}
}
}
public class DrawLine extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(20,20,40,40);
}
}
知道为什么吗?我应该以不同的方式使用 setVisible 吗?