我想提前用愛沙尼亞文而不是英文寫這段代碼而表示道歉。 我是Java初學者(到目前爲止2-3小時的經驗)。我正在嘗試編寫自定義的國際象棋表的代碼(可定製大小)到目前爲止,我已經能夠爲表格編寫代碼,但是我有着色它的問題。如何根據棋盤的正確顏色對桌子進行着色? 包esimene;Java國際象棋桌
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JColorChooser;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Joonistame4 extends JComponent implements ActionListener{
int suurus = 10;
int korgus = 10;
int x = 50;
int y = 50;
JTextField tf = new JTextField(String.valueOf(suurus));
JTextField tf2 = new JTextField(String.valueOf(korgus));
JColorChooser varvivalik = new JColorChooser();
JPanel p = new JPanel(new GridLayout(3,2)); //rida , veerg
JCheckBox cb = new JCheckBox();
public Joonistame4(){
setLayout(new BorderLayout());
p.add(new Label("suurus: "));
p.add(tf);
add(p, BorderLayout.SOUTH);
//add(varvivalik, BorderLayout.EAST);
tf.addActionListener(this);
cb.addActionListener(this);
varvivalik.setPreviewPanel(new JPanel());
}
public void paintComponent(Graphics g){
int suurus_kokku = 8*suurus;
g.setColor(Color.BLUE);
for(int x = suurus; x < suurus_kokku; x = x+suurus) {
for(int y = suurus; y < suurus_kokku; y = y+suurus) {
if(cb.isSelected()){
g.fillRect(50, 50, suurus, suurus);
}else{
g.drawRect(50+y, 50+x, suurus, suurus);
}
}
}
}
public static void main(String[] args) {
JFrame aken = new JFrame("Esimene aken");
aken.setSize(600, 600);
aken.getContentPane().add(new Joonistame4());
aken.setVisible(true);
aken.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent arg0) {
suurus = Integer.parseInt(tf.getText());
repaint();
}
}
請只發布相關部分。 – Maroun
名稱變量英文請 –
您可以多次使用'setColor'。 – johnchen902