Usando como interface uma janela gráfica criada
em javafx, mostro neste claro exemplo como
preencher um array multidimensional de inteiros
aleatoriamente.
A entrada de dados é feita por caixa de dialogos
do javaFX, e não é permitido a entrada de caracteres,
em javafx, mostro neste claro exemplo como
preencher um array multidimensional de inteiros
aleatoriamente.
A entrada de dados é feita por caixa de dialogos
do javaFX, e não é permitido a entrada de caracteres,
ou qualquer acento ou sinais do teclado,
passando absolutamente dígitos.
Os dígitos são capturados como String
mas logo em seguida são convertidos em inteiros.
para preenchimento do array multidimensional.
Na caixa de diálogo tem as orientações para o usuário,
Os dígitos são capturados como String
mas logo em seguida são convertidos em inteiros.
para preenchimento do array multidimensional.
Na caixa de diálogo tem as orientações para o usuário,
indicando o lado esquerdo ou direito
da posição escolhida, e se for escolhido corretamente,
da posição escolhida, e se for escolhido corretamente,
a próxima caixa de diálogo pede que entre
com um valor para a posição escolhida.
Veja abaixo uma imagem do programa em execução:
//PREENCHENDO ARRAY MULTIDIMENSIONAL
ALEATORIAMENTE EM JAVAFX
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.layout.Pane;
import java.awt.Toolkit;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.TextInputDialog;
import javafx.concurrent.Task;
public class PROJETO extends Application {
static String str = "";
static String str_1;
static String str_2;
static String str_3;
static int i, j, n = 3, y = 1, p = 0;
static int vet [ ][ ] = new int [ n ] [ n ];
static Stage stage;
Scene scene;
static Pane root = new Pane ( );
static Canvas canvas = new Canvas ( 660, 460 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
//Chamando uma função
depois de um certo tempo
//Chamada
Sleep ( 1800, k );
public static Node Tempo_2 ( ) {
Group y = new Group ( );
ctx.setFill ( Color.RED );
ctx.fillText ( "MUITO
OBRIGADO", 280, 420 );
return y;
}
public static Node Tempo_1 ( ) {
Group y = new Group ( );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Por: Samuel
Lima", 280, 380 );
return y;
}
public static int Sleep ( int x, int k ){
Task < Integer > close = new Task < Integer > ( ) {
@Override
protected Integer call ( ) throws Exception {
Thread.sleep ( x );
return null;
}
};
close.setOnSucceeded ( c -> {
if ( k == 1 )
Tempo_1 ( );
if ( k == 2 )
Tempo_2 ( );
} );
new Thread ( close ).start ( );
return 0;
}
// Esta função não permite a entrada de
caracteres
public static int Aleatorios ( char c ) {
int i;
for ( i = 0; i < ( c ); i++ ) {
if ( c < '0' || c > '9' )
return 0;
}
return 1;
}
//
//////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws InterruptedException {
ctx.setLineWidth ( 22.0 );
ctx.strokeRoundRect ( 10, 10, 640, 440, 10, 10 );
root.getChildren ( ).add ( canvas );
Scene scene = new Scene ( root );
stage.setTitle ( "PREENCHENDO
ARRAY ALEATORIAMENTE" );
ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 15 ) );
ctx.setFill ( Color.RED );
ctx.fillText ( "PREENCHENDO
ARRAY ALEATORIAMENTE", 190, 60 );
ObservableList < Node > content = ( ( Pane ) scene.getRoot ( ) )
.getChildren ( );
stage.setScene ( scene );
stage.show ( );
content.add ( Line ( ctx ) );
}
public static Node Line ( GraphicsContext ctx ) throws InterruptedException {
Group k = new Group ( );
int a = 0, b = 0;
//
/////////////////////////////////////////////////////////////
// Este bloco limpa o array
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < n; j++ ) {
vet [ i ] [ j ] = ' ';
}
}
//
/////////////////////////////////////////////////////////////
for ( a = 0; a < 9; a++ ) {
TextInputDialog dialogoNome = new TextInputDialog ( );
dialogoNome.setX ( 400 );
dialogoNome.setY ( 350 );
dialogoNome.setTitle ( " Posição" );
dialogoNome.setHeaderText ( "Lado esquerdo
" );
dialogoNome.setContentText ( "Número:
" );
dialogoNome.showAndWait ( ).ifPresent ( v -> str_2 = v );
Alert alert = new Alert ( AlertType.INFORMATION );
alert.setHeaderText ( null );
//
/////////////////////////////////////////////////////////////
// temos abaixo uma conversão de String
para char
// dentro dos parâmetros da função
Aleatorios
if ( Aleatorios ( str_2.charAt ( 0 ) ) == 0
|| ( str_2.charAt ( 0 ) ) > '2' ) {
Toolkit.getDefaultToolkit ( ).beep ( );
a = a - 1;
continue;
}
//
/////////////////////////////////////////////////////////////
TextInputDialog dia_logoNome = new TextInputDialog ( );
dia_logoNome.setX ( 730 );
dia_logoNome.setY ( 350 );
dia_logoNome.setTitle ( " Posição" );
dia_logoNome.setHeaderText ( "Lado direito
" );
dia_logoNome.setContentText ( "Número:
" );
dia_logoNome.showAndWait ( ).ifPresent ( v -> str_1 = v );
Alert ale_rt = new Alert ( AlertType.INFORMATION );
ale_rt.setHeaderText ( null );
//
/////////////////////////////////////////////////////////////
// temos abaixo uma conversão de String
para char
// dentro dos parâmetros da função
Aleatorios
if ( Aleatorios ( str_1.charAt ( 0 ) ) == 0
|| ( str_1.charAt ( 0 ) ) > '2' ) {
Toolkit.getDefaultToolkit ( ).beep ( );
a = a - 1;
continue;
}
// //Conversão de String para inteiro
i = Integer.parseInt ( str_2 );
j = Integer.parseInt ( str_1 );
//
/////////////////////////////////////////////////////////////
if ( vet [ i ] [ j ] != ' ' ) {
//Este bloco verifica
se uma posição já foi preenchida
Toolkit.getDefaultToolkit ( ).beep ( );
a = a - 1;
continue;
}
//
/////////////////////////////////////////////////////////////
if ( i == 0 && j == 0 ) {
y = 270;
p = 120;
str_3 = "Primeira posição";
}
if ( i == 0 && j == 1 ) {
y = 310;
p = 120;
str_3 = "Segunda posição";
}
if ( i == 0 && j == 2 ) {
y = 350;
p = 120;
str_3 = "Terceira posição";
}
if ( i == 1 && j == 0 ) {
y = 270;
p = 160;
str_3 = "Quarta posição";
}
if ( i == 1 && j == 1 ) {
y = 310;
p = 160;
str_3 = "Quinta posição";
}
if ( i == 1 && j == 2 ){
y = 350;
p = 160;
str_3 = "Sexta posição";
}
if ( i == 2 && j == 0 ){
y = 270;
p = 200;
str_3 = "Sétima posição";
}
if ( i == 2 && j == 1 ){
y = 310;
p = 200;
str_3 = "Oitava posição";
}
if ( i == 2 && j == 2 ){
y = 350;
p = 200;
str_3 = "Nona posição";
}
do {
TextInputDialog dia_log_oNome = new TextInputDialog ( );
//Thread.sleep(3000);
dia_log_oNome.setX ( 580 );
dia_log_oNome.setY ( 350 );
dia_log_oNome.setTitle ( "Valor" );
dia_log_oNome.setHeaderText ( str_3 );
dia_log_oNome.showAndWait ( ).ifPresent ( v -> str = v );
Alert ale_r_t = new Alert ( AlertType.INFORMATION );
ale_r_t.setHeaderText ( null );
//
/////////////////////////////////////////////////////////////
// temos abaixo uma
conversão de String para char
// dentro dos parâmetros
da função Aleatorios
if ( Aleatorios ( str.charAt ( 0 ) ) == 0 ) {
Toolkit.getDefaultToolkit ( ).beep ( );
continue;
}
////////////////////////////////////////////////////////////////
vet [ i ] [ j ] = Integer.parseInt ( str );
/*
//Classe
J funções só em modo texto
J
jht = new J ( );
//
/////////////////////////////////////////////////////////////
for
( i = 0; i < n; i++ ) {
if
( i == 0 )
jht.gotoxy
( ( short ) 33, ( short ) 11 );
if
( i == 1 )
jht.gotoxy
( ( short ) 33, ( short ) 14 );
if
( i == 2 )
jht.gotoxy
( ( short ) 33, ( short ) 17 );
for
( j = 0; j < n; j++ ) {
//
só imprime os números e não 32
if
( vet [ i ] [ j ] != ' ' ) {
//Imprimindo
em modo texto
System.out.printf
( vet [ i ] [ j ] + " " );
}
}
}
//
/////////////////////////////////////////////////////////////
*/
//Imprimindo na janela
gráfica
ctx.setFill ( Color.BLACK );
ctx.fillText ( str, y, p );
break;
} while ( true );
if ( a == 9 )
break;
continue;
}
b = 1;
Sleep ( 1800, b );
b = 2;
Sleep ( 2800, b );
return k;
}
//
//////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
Application.launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.