|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 206
|
[Java] Problema su interfaccia grafica
Salve ragazzi avrei bisogno di due aiutini!
1) Ho una finestra1 con dei bottoni. Alla pressione di un bottone deve aprirsi un'altra finestra2. Quando chiudo finestra2 come posso evitare di far chiudere finestra1? Deve chiudersi solo finestra2! Aggiornamento: ho risolto con this.getDefaultCloseOperation(DISPOSE_ON_CLOSE) nella finestra2. Aggiornamento_2: Se però dentro la finestra2 associo un ascoltatore ad un pulsante "chiudi" per chiudere la finestra, cosa posso fare in questo caso? Perché se nell'ascoltatore ci metto System.exit(0) si chiude tutto il programma.. Aggiornamento_3: Ho risolto con this.dispose(); 2) In questa seconda finestra dovrei far visualizzare del testo, formattato, con barra laterale a scorrimento. Il testo è lungo, sono delle regole di un gioco. Io ho creato una JScrollPane ed una JTextArea ed ho aggiunto la JTextArea al JScrollPane. Il problema è far visualizzare il testo bello formattato. Come si potrebbe fare? Grazie Ultima modifica di Groove89 : 15-09-2012 alle 11:31. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Se non erro il JTextArea è un componente che gestisce solo plain text, quindi niente formattazioni particolari o tutte le chicche di un rich text. Per quello prova a dare un'occhiata al JEditorPane. |
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 206
|
Allora ho provato a fare qualcosa:
Codice:
package gui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneLayout;
public class Regole extends JFrame implements ActionListener
{
private MyPanel pannello; //pannello principale con sfondo
private JPanel pannelloInferiore; //contiene i bottoni
private JTextArea areaTesto; //area di testo
private JScrollPane scroll; //scroller per area di testo
private JButton indietro;
private final String urlSfondo = "images/sfondoPrincipale2.jpg";
public Regole(String titolo) {
super(titolo);
Container c = this.getContentPane();
pannello = new MyPanel(urlSfondo);
pannello.setLayout(new BorderLayout());
c.add(pannello);
areaTesto = new JTextArea();
areaTesto.setEditable(false);
areaTesto.setLineWrap(true); //a capo automatico
scroll = new JScrollPane(areaTesto);
scroll.setPreferredSize(new Dimension(480,630));
scroll.setLayout(new ScrollPaneLayout());
pannello.add(scroll, BorderLayout.NORTH);
String testo;
testo = setTesto();
areaTesto.setText(testo);
indietro = new JButton("Indietro");
indietro.addActionListener(this);
pannelloInferiore = new JPanel(new FlowLayout());
pannelloInferiore.setOpaque(false);
pannelloInferiore.add(indietro);
pannello.add(pannelloInferiore, BorderLayout.SOUTH);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int screenWidth = (int) screen.getWidth(); //altezza schermo
int screenHeight = (int) screen.getHeight(); //larghezza schermo
int x = (screenWidth/2)-(500/2); //coordinata x del punto
int y = (screenHeight/2)-(700/2); //coordinata y del punto
this.setLocation(x, y);
this.setSize(500,700);
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source.equals(indietro)) {
this.dispose();
}
}
private String setTesto() {
String text = "";
String filename = "regole.txt";
try {
FileReader fr = new FileReader(filename);
BufferedReader br = new BufferedReader(fr); //-> Creo il canale di lettura
String line;
while ((line=br.readLine())!=null) { //-> Finchè non c'è più niente da leggere
text = text + line;
}
br.close(); //-> Chiudo il canale di lettura
}
catch(FileNotFoundException e) {
return("Impossibile trovare il file " + filename + ".");
}
catch(IOException e) {
return("Impossibile caricare il file " + filename + ".");
}
return text;
}
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
[Kendall] ti ha dato un ottimo suggerimento. JEditorPane e' il componente che fa per te. Poi, invece del .txt puoi creare un .html cosi' da formattare come vuoi, decidere stili dei font, colori ed inserire immagini in maniera estremamente semplice
__________________
In God we trust; all others bring data |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2006
Messaggi: 206
|
Va bene, perfetto, grazie
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:29.




















