¡Urgente! Una pregunta de Java (sobre los nueve puntos en la imagen de abajo, el punto del medio está vacío...)
importar java.awt.Color;
importar java.util.ArrayList;
la clase pública MobileSorter extiende JFrame {
// Margen superior
public static final int TOP_SPA = 100
//margen izquierdo
public static final int LEFT_SPA = 100; public static void main(String args[]) {
JFrame.setDefaultLookAndFeelDecoated(true);
MobileSorter ms = new MobileSorter();
ms.setVisible (true);
}
public MobileSorter() {
//Establece el tamaño del formulario
this.setSize(400, 400 ) ;
ms.setVisible(true)
}
//Establece el tamaño del formulario
this.setVisible(true) )setSize (400, 400);
//nuevo componente
MyPanel p = new MyPanel();
p>
this.setLayout(new BorderLayout());
this.add(p, BorderLayout.CENTER); >
//Iniciar el hilo
Hilo t = new Thread(p) ;
t.start() ;
}
}
clase MyPanel extiende JPanel implementa Runnable {
//matriz que almacena datos redondos
private ArrayList ca = new ArrayList(9
p>/**
* Círculo central
*/
Círculo privado cCenter = null
público MyPanel( ) {
init();
}
pintura vacía pública( Gráficos g) {
/ /Pinta la línea diagonal que conecta con la posición 5
for (int i = 0; ilt; 9; i) {
if (i == 4) continue
Círculo.dra
wLine(g, (Círculo)ca.get(4), (Círculo) ca.get(i));
}
//Vertical y líneas horizontales y verticales
g.setColor(Color.BLACK);
for (int i = 0; ilt; 9; i)
for ( int j = 0; jlt; 9; j )
si (i != j amp; amp; i lt; j)
si (j - i == 3 || (i 1 == j amp; j3 ! = 0)))
Circle.drawLine(g , (Círculo) ca.get(i) , (Círculo) ca.get(j)) ;
/** Dibujar un círculo*/
for (int i = 0; ilt; 9; i)
((Círculo) ca.get (i )).drawMe(g);
}
/**
* Inicialización
*/
public void init() {
for (int i = 1; ilt; 10; i)
this. longitud; ) {
int c;
c = (int)(Math .random() * 8)
booleano isRepeat = false ; /p>
for (int j = 0; jlt; i; j )
if (n[j] == c) {
isRepeat = true p>
romper ;
}
si (isRepeat) continuar
si (i == 4) i
((Círculo)this.ca.get(i)).setNum(c);
n[i] = c
i; }
}
/**
* Hilo
*/
public void run() {
int oPos = 0; // Etiqueta del círculo con valor 1
int sPos; // Etiqueta del círculo al lado del círculo con valor 1
int ePos; //Etiqueta del círculo del terminal
int cPos = 0; //Etiqueta del círculo de operación
cCenter = (Círculo)this.cCenter = (Círculo)this.ca. (i)).getNum() == 1) {
oPos = i;
descanso
}
sPos =; Circle.getNextDeasil(oPos);
ePos = oPos
mientras (verdadero) {<
/p>
cPos = sPos;
while (verdadero) {
Círculo c = (Círculo)this.ca.get(cPos); > Círculo n = (Círculo)this.ca.get(Círculo.getNextDeasil
);