-
Utilisation de JTextArea
Bonjour à tous,
Pour re situer le contexte, j'utilise des objets JAVA dans l'environnement MATLAB.En particulier le JTextArea pour faire une fenêtre qui ressemble à un log des actions en cours.
Pour le moment je veux juste ajouter des lignes les une en dessous des autres avec la méthode "append".
Mon problème est donc le suivant: Si j'ajoute dans ma JTextArea le texte récupérer dans un fichier il n'y a aucun problème tous les caractères de fin de ligne sont placé au bon endroit. Par contre si j'exécute la commande JtextArea.append('ma phrase\n') plusieurs fois, les lignes sont les unes à la suite des autres et non en dessous des autres.
Auriez vous une astuce pour forcer l'ajout d'une ligne autre que append('\n') qui ne marche pas chez moi.
Merci
-
Si JTextArea gère le html, ce qu'il fait il me semble, il te suffit de mettre <br> pour un retour à la ligne
ou alors essaie \r\n
-
quelle version de java utilise tu?
sous quel systeme es tu?
et montre nous un peu ton code parceque le \n marche tres bien a lui seul.
-
J'utilise la version1.5
Je suis sur windows
Mais mois ca ne marcha pas les retour chariot \n peut etre est ce du a matlab.
En tous cas je cherche une solution simple qui impose au JTextArea de sauter une ligne au lieu d'écrire 'maphrase\n' dans ma JTextArea
Voila
function TestJavaMatlab
clear;
f = figure('MenuBar','none','ToolBar','none');
% Import the necessary java packages
import javax.swing.*;
import javax.swing.JTextArea;
import javax.swing.text.JTextComponent.*;
import java.lang.Object.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Character;
sizeFigure = get(f,'position');
% Prepare the button icon
Button1Icon = ImageIcon('images/LIBCP10.gif');
Button2Icon = ImageIcon('images/T1.gif');
% Create the component
JTextArea = javax.swing.JTextArea;
JScrollPane = javax.swing.JScrollPane(JTextArea);
JPanel = javax.swing.JPanel; % c'est le panel le plus haut il englobe tous les autres
JTabbedPane = javax.swing.JTabbedPane;
JPanel1 = javax.swing.JPanel;
JLabel1 = javax.swing.JLabel;
JButton1 = javax.swing.JButton(' button1',Button1Icon);
JButton2 = javax.swing.JButton(' button2',Button2Icon);
JPanel2 = javax.swing.JPanel;
JLabel2 = javax.swing.JLabel;
% Set the component
JButton1.setVerticalTextPosition(AbstractButton.BOTTOM);
JButton1.setHorizontalTextPosition(AbstractButton.CENTER);
% JButton1.setMnemonic(KeyEvent.VK_B1);
JButton1.setActionCommand('button1');
JButton2.setVerticalTextPosition(AbstractButton.TOP);
JButton2.setHorizontalTextPosition(AbstractButton.CENTER);
% JButton2.setMnemonic(KeyEvent.VK_B2);
JButton2.setActionCommand('button2');
JPanel1.add(JButton1);
JPanel1.add(JButton2);
JPanel1.add(JLabel1);
JPanel1.setSize(300, 80);
JPanel2 = javax.swing.JPanel;
JLabel2 = javax.swing.JLabel;
JPanel2.add(JLabel2);
JTabbedPane.addTab('onglet1', JPanel1);
JTabbedPane.addTab('onglet2', JPanel2);
JTabbedPane.addTab('onglet3',JScrollPane);
JPanel = JPanel.add(JTabbedPane);
% set the panel size
comp = javacomponent(JPanel);
[comp, container] = javacomponent(comp);
set(container,'Position', [1, 1,sizeFigure(3),sizeFigure(4)]);
% Prepare a handle structure of the GUI components so that they can be
% interacted by the callback functions.
handles.JButton1 = JButton1;
handles.JButton2 = JButton2;
handles.JTextArea = JTextArea;
handles.JScrollPane = JScrollPane;
%Listen for actions on the button.
set(JButton1,'ActionPerformedCallback',{@ButtonCallback,handles});
set(JButton2,'ActionPerformedCallback',{@ButtonCallback,handles});
%------------------------------------------------------
function ButtonCallback(hObject,eventdata,handles)
actionCommand = get(hObject,'ActionCommand');
try
switch actionCommand
case 'button1'
%handles.btn_left.setEnabled(true);
%handles.btn_middle.setEnabled(true);
%handles.btn_right.setEnabled(false);
handles.JTextArea.append('%This is an example of using Matlab\n');
refresh(gcf);
case 'button2'
%handles.btn_left.setEnabled(false);
%handles.btn_middle.setEnabled(false);
%handles.btn_right.setEnabled(true);
fid = fopen('TestJavaMatlab.m');
C='';
while ~feof(fid)
C=fgets(fid);
handles.JTextArea.append(C);
end;
refresh(gcf);
fclose(fid);
end
catch
err=lasterror;
msgbox(err.message,'Unrecognized indicator','error','modal');
end
-
J'oublie de préciser que peut être j'ai oublié d'importer un librairie.
On ne sait jamais...
-
je ne vois pas exactement la ligne de "\n".
-
Apres le %-------------------------------------
il y a deux case le premier est un append('Ma Phrasee \n') en plus il est souligné.
C'est celui la qui pose problème car au lieu de renvoyer:
Ma phrase
il renvoi:
Ma Phrasee \n
Par contre leux deuxième case marche parfaitement car il lit un fichier et ecrit ligne par ligne les lignes complète du fichier
En espérant avoir été clair!!!
-
Y aurais t'il quelqu'un qui puisse me donner une solution à mon premier message.
Merci :oops:
-
append("Ma Phrasee \n") avec des doubles guillemets.