desde que não seja muito longo,
podemos fazê-lo na própria janela.
Neste exemplo, o programa lê um arquivo
de quase 500 linhas.
mas para uma leitura de milhares de linhas,
no máximo 10000, Para não ficar muito pesado,
a leitura deve ser feita num TextArea.
O arquivo de nome "Poesias famosas",
possui 448 linhas, e para visualizá-las
por completo basta manipular o Scroll
com o mouse para baixo ou para cima.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.ScrollPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PROJETO extends Application {
static String str = "";
static int a = 0;
static Group root = new Group ( );
static Scene scene = new Scene ( root, 600, 300, Color.BLACK );
static Canvas canvas = new Canvas ( 600, 8000 );
static GraphicsContext ctx = canvas.getGraphicsContext2D ( );
static ScrollPane s1 = new ScrollPane ( );
//
/////////////////////////////////////////////////////////////////////////
private static final void Ler_Arquivo ( ) throws IOException {
Path wiki_path = Paths.get ( "H:\\eclipse
luna_two\\"
+ "PROJETO\\PROJETO\\src\\Poesias
famosas.txt" );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.NORMAL,
FontPosture.ITALIC, 13 ) );
try ( BufferedReader reader = Files.newBufferedReader ( wiki_path ) ) {
String line = "";
String num = "";
while ( ( line = reader.readLine ( ) ) != null ) {
a++;
num += a + "\n";
// System.out.println
( a + " " + line );
str += line + "\n";
}
ctx.setFill ( Color.RED );
ctx.fillText ( num, 10, 80 );
ctx.setFill ( Color.BLACK );
ctx.fillText ( str, 50, 80 );
}
}
//
/////////////////////////////////////////////////////////////////////////
@Override
public void start ( Stage stage ) throws IOException {
stage.setTitle ( "LENDO ARQUIVO
DE TEXTO EM JAVAFX" );
//Este retângulo forma uma moldura em torno da
janela
Rectangle rect = new Rectangle ( 600, 300 );
rect.setLayoutX ( 5 );
rect.setLayoutY ( 5 );
//Arredondamento dos cantos do retângulo
rect.setArcHeight ( 35 );
rect.setArcWidth ( 35 );
rect.setFill ( Color.CHARTREUSE );
// Criando moldura em torno do ScrollPane
s1.setStyle ( "-fx-padding:
5;"
+ "-fx-border-style:
solid inside;"
+ "-fx-border-width:
4;"
+ "-fx-border-insets:
5;"
+ "-fx-border-radius:
5;"
+ "-fx-border-color:
black;" );
stage.setResizable ( false );
s1.setPannable ( true );
s1.setLayoutX ( 20 );
s1.setLayoutY ( 20 );
s1.setPrefSize ( 570, 270 );
s1.setContent ( canvas );
ctx.setFill ( Color.RED );
//Usando fonte em italic
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 16 ) );
ctx.fillText ( "LENDO ARQUIVO
DE TEXTO EM JAVAFX", 120, 15 );
ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD,
FontPosture.ITALIC, 15 ) );
ctx.setFill ( Color.BLUE );
ctx.fillText ( "Imprimindo
abaixo o arquivo aberto", 140, 40 );
Ler_Arquivo ( );
root.getChildren ( ).addAll ( rect, s1 );
stage.setScene ( scene );
stage.show ( );
}
//
/////////////////////////////////////////////////////////////////////////
public static void main ( String [ ] args ) {
launch ( args );
}
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.