Définition de variables d'environnement à l'aide de l'automate d'application
Cette rubrique propose un exemple d'utilisation d'une expression dans un noeud d'automate Lancer l'application pour démarrer des exécutables et transmettre des paramètres à l'application qui a été lancée.
Processus référencé
ApplicationLaunchExample.xml
Description
Le noeud d'automate Lancer l'application peut être utilisé pour démarrer des exécutables et transmettre des paramètres à l'application qui a été lancée. La ligne de commande ci-dessous exécute une classe Java et lui transmet trois arguments de type chaîne. Dans cet exemple, définissez le noeud d'automate Lancer l'application qui contient cette ligne de commande comme asynchrone.
Instructions
1. Créez trois variables de type chaîne dans le modèle : name, date et message. Affectez-leur des valeurs initiales. Notez que si vous souhaitez affecter plusieurs mots à une variable, vous devez les indiquer entre guillemets ("). Par exemple, pour affecter les mots Bonjour, comment allez-vous ? à la variable, spécifiez la valeur sous la forme "Bonjour, comment allez-vous ?".
2. Créez une variable d'environnement classpath dans l'automate d'application et indiquez sa valeur dans le dossier jdk de votre machine ainsi que dans le dossier où réside la classe Java.
3. Créez un fichier Java avec ce code ("Code pour le fichier Java"), puis compilez-le. Assurez-vous que son chemin est bien stocké dans la variable classpath ci-dessus.
4. Copiez le code suivant :
java MessageDisplay {name} {date} {message}
Code pour le fichier Java
import java.awt.*;
import java.awt.event.*
public class MessageDisplay extends Frame{
public MessageDisplay( ) {
//{{ INIT_CONTROLS
setLayout(null );
setSize(628,389);
label1 = new java.awt.Label( "Hello", Label.RIGHT );
label1.setBounds(108,36,103,22);
label1.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label1);
label2 = new java.awt.Label( "Date", Label.RIGHT );
label2.setBounds(103,72,103,24);
label2.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label2);
label3 = new java.awt.Label( "Message", Label.RIGHT );
label3.setBounds(103,108,103,27);
label3.setFont(new Font( "Dialog", Font.BOLD , 16));
add(label3);
TFName = new java.awt.TextField( );
TFName.setBounds(228,24,280,28);
add(TFName );
TFDate = new java.awt.TextField( );
TFDate.setBounds(228,60,276,26);
add(TFDate );
TAMessage = new java.awt.TextArea( );
TAMessage.setBounds(228,96,285,164);
add(TAMessage );
OK = new java.awt.Button( );
OK.setLabel( "OK");
OK.setBounds(312,276,70,25);
OK.setBackground(new Color(12632256));
add(OK );
LError = new java.awt.Label( "Wrong number of arguments. Please rerun with 3 arguments ");
LError.setVisible(false );
LError.setBounds(12,324,601,29);
LError.setFont(new Font( "Dialog", Font.BOLD , 16));
add(LError );
setTitle( "Untitled");
//}}
//{{ REGISTER_LISTENERS
SymWindow aSymWindow = new SymWindow( );
this.addWindowListener(aSymWindow );
SymAction lSymAction = new SymAction( );
OK.addActionListener(lSymAction );
//}}
}
public MessageDisplay(String title)
{
this( );
setTitle(title );
}
public void setVisible(boolean b)
{
if(b )
{
setLocation(50, 50);
}
super.setVisible(b );
}
static public void main(String args[ ])
{
MessageDisplay myFrame = new MessageDisplay( );
myFrame.setVisible(true );
myFrame.displayMessage(args );
}
public void addNotify( )
{
// Record the size of the window prior to calling parents addNotify .
Dimension d = getSize( );
super.addNotify( );
if ( fComponentsAdjusted )
return;
// Adjust components according to the insets
setSize(insets( ).left + insets( ).right + d.width , insets( ).top + insets( ).bottom + d.height );
Component components[ ] = getComponents( );
for (int i = 0; i < components.length i++ )
{
Point p = components[i ]. getLocation( );
p.translate(insets( ).left, insets( ).top);
components[i ]. setLocation(p );
}
fComponentsAdjusted = true;
}
// Used for addNotify check.
boolean fComponentsAdjusted = false;
//{{ DECLARE_CONTROLS
java.awt.Label label1;
java.awt.Label label2;
java.awt.Label label3;
java.awt.TextField TFName
java.awt.TextField TFDate
java.awt.TextArea TAMessage
java.awt.Button OK;
java.awt.Label LError
//}}
class SymWindow extends java.awt.event.WindowAdapter
{
public void windowClosing(java.awt.event.WindowEvent event)
{
Object object = event.getSource( );
if (object == MessageDisplay.this )
MessageDisplay_WindowClosing(event );
}
}
void MessageDisplay_WindowClosing(java.awt.event.WindowEvent event)
{
setVisible(false ); // hide the Frame
}
public void displayMessage(String args[ ]){
if ( args.length < 2){
LError.setVisible(true );
LError.setText( "Wrong number of arguments. Please rerun with 2 arguments");
}
else {
LError.setVisible(false );
TFName.setText(args[0]);
TFDate.setText(args[1]);
TAMessage.setText(args[2]);
}
}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource( );
if (object == OK)
OK_ActionPerformed(event );
}
}
void OK_ActionPerformed(java.awt.event.ActionEvent event)
{
setVisible(false );
system.exit(0)
}
}
Est-ce que cela a été utile ?