我写了一个棋盘程序(如下所示)。我的问题是我无法弄清楚如何使用调整大小来居中,并让它按比例调整大小。
我在一份简短的声明中补充道。 Int调整大小(如下所示)我做了一些类似于以前使用半径的靶心的程序。我只是没有丝毫的线索如何在这里实现它。
import java.awt.*;
import javax.swing.JComponent;
public class CheckerboardComponent extends JComponent {
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.RED);
int s = 12;
int x = s;
int y = s;
// int resize = Math.min(this.getHeight(), this.getWidth()) / 8 ;
for (int i = 0; i < 8; i++) {
// one row
for (int j = 0; j < 8; j++) {
g2.fill(new Rectangle(x, y, 4 * s, 4 * s) );
x += 4 * s;
if(g2.getColor().equals(Color.RED)){
g2.setColor(Color.BLACK);
}else{
g2.setColor(Color.RED);
}
}
x = s;
y += 4 * s;
if(g2.getColor().equals(Color.RED)){
g2.setColor(Color.BLACK);
}else{
g2.setColor(Color.RED);
}
}
}
}
import javax.swing.*;
public class CheckersViewer {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(430, 450);
frame.setTitle("Checkerboard");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CheckerboardComponent component = new CheckerboardComponent();
frame.add(component);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
答案 0 :(得分:0)
嗯......这是一个想法,虽然它可能不是一个好的(我对jComponent和jFrame也没那么好,所以可能会更好方式和更适合的人)
我相信组件对象有一个名为getSize()的内置方法。如果您可以将矩形的大小与窗口的大小相关联,那么它可以调整大小。显然会有更多的代码和参数,但例如:
public void drawStuff(Component c)
{
...
Dimension size = c.getSize();
double RectWidth = (size.width)*(.05);
...
}
查看这个以获得更完整的示例: http://www.javadocexamples.com/java/awt/Component/getSize().html
我道歉,我可以提供更多帮助。