【发布时间】:2014-03-02 00:05:41
【问题描述】:
对于用爱沙尼亚语而不是英语编写此代码,我要提前道歉。 我是 Java 初学者(到目前为止有 2-3 小时的经验)。我正在尝试为可定制的国际象棋表编写代码。(尺寸可定制)到目前为止,我已经能够为表编写代码,但我在着色时遇到了问题。如何根据棋盘的正确颜色为棋盘上色? 包装esimene;
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();
}
}
【问题讨论】:
-
请只发布相关部分。
-
请用英文命名变量
-
您可以多次使用
setColor。
标签: java swing colors paintcomponent jcomponent