Im пытается нарисовать шахматную доску в java, и для этого я начинаю рисовать вертикальные линии. Я сделал это, но вместо того, чтобы писать каждую строку, я хочу реализовать цикл. Я новичок, поэтому некоторые советы действительно помогут! Заранее спасибо.Создайте петлю для рисования вертикальных линий
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class ChessBoard extends JFrame implements ActionListener
{
private JButton button;
private JPanel panel;
public static void main(String[] args)
{
ChessBoard demo = new ChessBoard();
demo.setSize(400,300);
demo.createGUI();
demo.setVisible(true);
}
private void createGUI()
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window = getContentPane();
window.setLayout(new FlowLayout());
panel = new JPanel();
panel.setPreferredSize(new Dimension(800,800));
panel.setBackground(Color.white);
window.add(panel);
button = new JButton("start");
window.add(button);
button.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
int xLeft;
int yTop;
Graphics paper = panel.getGraphics();
paper.setColor(Color.black);
paper.fillRect(0,0,800,800);
paper.setColor(Color.white);
xLeft = 0;
paper.drawLine(100, 0, 100, 800);
paper.drawLine(200, 0, 200, 800);
paper.drawLine(300, 0, 300, 800);
paper.drawLine(400, 0, 400, 800);
paper.drawLine(500, 0, 500, 800);
paper.drawLine(600, 0, 600, 800);
paper.drawLine(700, 0, 700, 800);
paper.drawLine(800, 0, 800, 800);
}
}
'для (INT I = 100; г <= 800; I + = 100) {paper.drawLine (я, 0, I, 800); } '. – Maroun
* «пытается нарисовать шахматную доску» * Звучит намного сложнее, чем просто выложить его, как показано в [Создание надежного, масштабируемого графического интерфейса для шахмат] (http://stackoverflow.com/q/21142686/418556). Этот связанный GUI использует кнопки для квадратов шахматной доски, тем самым добавляя доступность клавиатуры, легко определяя, на какой квадрат был нажат, индикация фокусировки и простой способ отображения самих шахматных фигур. –
Как уже упоминалось в моем ответе: вы должны ** NOT ** называть 'panel.getGraphics();' и рисовать в этот объект Graphics в вашем методе actionPerformed. Это не правильный способ рисования в Swing! Пожалуйста, посмотрите http://docs.oracle.com/javase/tutorial/uiswing/painting/ – Marco13