package client;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class YootPanel extends JPanel
{
private ImageIcon bgIcon;
public JTextArea textBox;
public ClientUI clientUI;
public static final int HORSE_HEIGHT = 25;
public static final int HORSE_WIDTH = 40;
public int r1,r2,r3,r4;
public int b1,b2,b3,b4;
YootPanelPlot plot;
public YootPanel(ClientUI clientUI)
{
super();
init_rest();
init_bg();
plot = = new YootPanelPlot();
this.setVisible(true);
this.clientUI = clientUI;
}
private void init_bg()
{
java.net.URL imgUrl = ClientUI.class.getResource("../images/images/background.png");
bgIcon = new ImageIcon(imgUrl);
}
protected void paintComponent(Graphics g)
{
try
{
g.drawImage(bgIcon.getImage(), -20, 0, null);
super.paintComponent(g);
} catch (Exception e)
{
set_Loc();
g.setColor(Color.RED);
g.fillOval(plot.plot[0][r1], plot.plot[1][r1], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][r2], plot.plot[1][r2], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][r3], plot.plot[1][r3], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][r4], plot.plot[1][r4], HORSE_WIDTH, HORSE_HEIGHT);
g.setColor(Color.BLUE);
g.fillOval(plot.plot[0][b1], plot.plot[1][b1], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][b2], plot.plot[1][b2], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][b3], plot.plot[1][b3], HORSE_WIDTH, HORSE_HEIGHT);
g.fillOval(plot.plot[0][b4], plot.plot[1][b4], HORSE_WIDTH, HORSE_HEIGHT);
System.err.println("Paint");
}
}
public void paint(Graphics g)
{
super.paint(g);
}
private void init_rest()
{
this.setBorder(javax.swing.BorderFactory.createTitledBorder("Yoot Map"));
this.setFocusable(false);
this.setMinimumSize(new java.awt.Dimension(670, 400));
this.setName("map"); // NOI18N
this.setOpaque(false);
this.setPreferredSize(new java.awt.Dimension(630, 400));
this.setSize(new java.awt.Dimension(630, 400));
this.setVerifyInputWhenFocusTarget(false);
org.jdesktop.layout.GroupLayout yootMapLayout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(yootMapLayout);
yootMapLayout.setHorizontalGroup(
yootMapLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(0, 658, Short.MAX_VALUE));
yootMapLayout.setVerticalGroup(
yootMapLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING).add(0, 442, Short.MAX_VALUE));
}
public void set_Loc()
{
try
{
System.err.println("......"+clientUI.client.c2.blueHorseLocation[0]);
r1 = clientUI.client.c2.getRed(0);
r2 = clientUI.client.c2.getRed(1);
r3 = clientUI.client.c2.getRed(2);
r4 = clientUI.client.c2.getRed(3);
b1 = clientUI.client.c2.blueHorseLocation[0];
b2 = clientUI.client.c2.blueHorseLocation[1];
b3 = clientUI.client.c2.blueHorseLocation[2];
b4 = clientUI.client.c2.blueHorseLocation[3];
} catch (NullPointerException e)
{
e.printStackTrace();
}
}
}
То, что я пытаюсь сделать, - это получать обновления о том, куда поставить рисование овалов.Однако последняя часть r1 = clientUI.client.c2.getRed (1);генерирует исключение NullPointerException
Так что я попытался получить доступ к этим общедоступным переменным классов r1, r2 ... и т. д., однако я также не смог получить доступ к этим общедоступным переменным ....
Есть ли способ, которым яможно изменить эти переменные так, чтобы я мог перемещать овалы по мере получения новых обновлений координат?