Bonjour Est-il possible de dessiner dans un JPanel ce que renvoie la console java? avez-vous un tutoriel à suivre? merci swConsole Java JPanel
Répondre
Première lecture depuis la console. Pour ce faire, utilisez System.setOut(). Utilisez ByteOutputStream, écrivez là et lisez depuis leur. Vous obtiendrez ce que votre programme imprime sur le système. Utilisez maintenant TextArea ou JScrollPane pour présenter le texte.
Je ne me souviens pas où j'ai trouvé, mais je l'ai délivré le flux de sortie à un JTextArea tenue dans un JPanel en utilisant une classe que j'appelle TextAreaOutputStream:
import java.io.IOException;
import java.io.OutputStream;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class TextAreaOutputStream extends OutputStream {
private final JTextArea textArea;
private final StringBuilder sb = new StringBuilder();
private String title;
public TextAreaOutputStream(final JTextArea textArea, String title) {
this.textArea = textArea;
this.title = title;
sb.append(title + "> ");
}
@Override
public void flush() {
}
@Override
public void close() {
}
@Override
public void write(int b) throws IOException {
if (b == '\r')
return;
if (b == '\n') {
final String text = sb.toString() + "\n";
SwingUtilities.invokeLater(new Runnable() {
public void run() {
textArea.append(text);
}
});
sb.setLength(0);
sb.append(title).append("> ");
}
sb.append((char) b);
}
}
Je puis re directe la sortie standard Écoutez cet objet comme Alex le mentionne dans sa réponse ci-dessus.
'sb.append (title) .append ("> ");' serait probablement plus efficace. –
@DavidConrad: en effet, cela éviterait une concaténation de chaîne. Merci, et réponse éditée. –
Créez une sous-classe de FilterOutputStream pour répercuter tout sur un JTextArea.
class Echo extends FilterOutputStream {
private final JTextArea text;
public Echo(OutputStream out, JTextArea text) {
super(out);
if (text == null) throw new IllegalArgumentException("null text");
this.text = text;
}
@Override
public void write(int b) throws IOException {
super.write(b);
text.append(Character.toString((char) b));
// scroll to end?
}
// overwrite the other write methods for better performance
}
et remplacer la sortie standard:
JTextArea text = new JTextArea();
System.setOut(new PrintStream(new Echo(System.out, text)));
Le Message Console fournit quelques options qui pourraient vous intéresser.
- 1. Java JPanel redraw issues
- 2. java, peinture JPanel, qui est dans un autre JPanel
- 3. Java obtenir des composants JPanel
- 4. Java - JPanel et KeyListener Problème
- 5. Java, swing, JFrame et JPanel
- 6. Mouse event e (Jpanel) Java help
- 7. JPanel ne s'affiche pas dans JFrame - Java
- 8. comment rendre java JPanel et graphics2d transparent?
- 9. Java - JFrame, JPanel, Layout et Clipping
- 10. java console menu
- 11. Console Java API
- 12. Clear Console en Java
- 13. console simple Application utilisant Java
- 14. Console d'opérateur App - Java/Flex
- 15. Rafraîchir JPanel
- 16. Scrollable JPanel
- 17. Glisser JPanel
- 18. Java: Utiliser plusieurs Threads pour peindre simultanément sur un JPanel
- 19. Création d'un espace gris autour d'un JPanel en Java
- 20. pourquoi mon bouton sur mes pas apparaître JPanel - Java
- 21. Comment afficher un JTable dans un JPanel avec Java?
- 22. Dimensionnement incorrect d'un JPanel dans un JScrollPane dans Java 1.5
- 23. Java dessin sur JPanel qui sur un JFrame
- 24. Java Swing JPanel Restez au top de JTable
- 25. Hava un panneau Java charge un autre jpanel
- 26. Comment dessiner un cercle sur JPanel? Java 2D
- 27. Ajout d'un JPanel à un autre JPanel ayant TableLayout
- 28. JPanel dans JScrollPane dans JPanel ignorant wrap horizontal
- 29. Console Java, UTF-8 et Windows
- 30. java: messages system.out colorés sur la console
Vous pouvez ajouter "Swing" aux tags de votre question pour attirer le forum Swing experts. :) –