diff options
Diffstat (limited to 'gettext-tools/examples/hello-java-swing/Hello.java')
-rw-r--r-- | gettext-tools/examples/hello-java-swing/Hello.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gettext-tools/examples/hello-java-swing/Hello.java b/gettext-tools/examples/hello-java-swing/Hello.java new file mode 100644 index 0000000..7bdef7e --- /dev/null +++ b/gettext-tools/examples/hello-java-swing/Hello.java @@ -0,0 +1,63 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the Java/Swing program. + +import java.util.*; +import java.io.*; +import java.text.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import gnu.gettext.*; + +public class Hello { + public static void main (String[] args) { + ResourceBundle catalog = ResourceBundle.getBundle("hello-java-swing"); + JFrame frame = new JFrame("Hello example"); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + JLabel label1 = + new JLabel(GettextResource.gettext(catalog,"Hello, world!")); + JLabel label2 = + new JLabel( + MessageFormat.format( + GettextResource.gettext(catalog, + "This program is running as process number {0}."), + new Object[] { getPid() })); + JButton button = new JButton("OK"); + button.addActionListener( + new ActionListener() { + public void actionPerformed (ActionEvent event) { + System.exit(0); + } + }); + JPanel labels = new JPanel(); + labels.setLayout(new GridLayout(2, 1)); + labels.add(label1); + labels.add(label2); + JPanel buttons = new JPanel(); + buttons.setLayout(new FlowLayout(FlowLayout.RIGHT)); + buttons.add(button); + frame.getContentPane().setLayout(new BorderLayout()); + frame.getContentPane().add(labels, BorderLayout.CENTER); + frame.getContentPane().add(buttons, BorderLayout.SOUTH); + frame.pack(); + frame.setVisible(true); + } + + /* Return the process ID of the current process. */ + private static String getPid () { + try { + String[] args = new String[] { "/bin/sh", "-c", "echo $PPID" }; + Process p = Runtime.getRuntime().exec(args); + InputStream p_out = p.getInputStream(); + String s = (new BufferedReader(new InputStreamReader(p_out))).readLine(); + p.destroy(); + if (s != null) + return s; + } catch (IOException e) { + e.printStackTrace(); + } + return "???"; + } +} |