我有以下代码,并且在加载JLabel之后我正在努力做什么。我如何显示并给出坐标位置?我在网上尝试了一些解决方案,但他们似乎并没有像“无法找到getCodeBased”之类的错误一样工作。有人可以帮忙吗?我仍然是初学者,所以请不要苛刻。以图形导入图像
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import java.awt.Image;
public class ChessBoard extends JFrame implements ActionListener
{
private JButton button;
private JPanel panel;
JLayeredPane layeredPane;
public static void main(String[] args)
{
ChessBoard demo = new ChessBoard();
demo.setSize(900,900);
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;
for (int i = 100; i < 800; i += 100)
{
paper.drawLine(i,0,i,800);
}
for (int i = 100; i < 800; i += 100)
{
paper.drawLine(0, i, 800, i);
}
for (int j = 1; j < 9; j++)
{
paper.setColor(new Color(238, 221, 187));
for (int k = 100 * ((j+1) % 2); k < 800; k+=200)
{
paper.fillRect (k, (j-1) * 100, 100, 100);
}
paper.setColor(new Color(204,136,68));
for (int i = 100 * (j%2); i < 800; i+=200)
{
paper.fillRect(i, (j-1) * 100, 100, 100);
}
}
}
public void paint(Graphics g)
{
JLabel piece = new JLabel(new ImageIcon(getClass().getResource("Rooka8.png")));
}
}
P.S.
设法解决它自己,试图在actionPerformed方法张贴下面的代码,以及import java.awt.Image;
ImageIcon myImage = new ImageIcon(...);
myImage.paintIcon(this, paper, ...,...);
'公共类ChessBoard..'哦,我[记得你(http://stackoverflow.com/q/21525019/418556)。如果你不理会我和Marco13的建议,我担心你需要很长时间来创建一个破坏的GUI。祝你好运,我有其他人来帮忙。 –