| // Example for use of GNU gettext. |
| // This file is in the public domain. |
| // |
| // Source code of the Java/QtJambi program. |
| |
| import java.util.*; |
| import java.io.*; |
| import java.text.*; |
| import com.trolltech.qt.core.*; |
| import com.trolltech.qt.gui.*; |
| import gnu.gettext.*; |
| |
| public class Hello { |
| public static void main (String[] args) { |
| ResourceBundle catalog = ResourceBundle.getBundle("hello-java-qtjambi"); |
| |
| QApplication.initialize(args); |
| |
| QMainWindow window = new QMainWindow(); |
| window.setWindowTitle("Hello example"); |
| |
| QWidget panel = new QWidget(); |
| QVBoxLayout panelLayout = new QVBoxLayout(); |
| panelLayout.setSpacing(2); |
| |
| QLabel label1 = |
| new QLabel(GettextResource.gettext(catalog,"Hello, world!")); |
| panelLayout.addWidget(label1); |
| |
| QLabel label2 = |
| new QLabel( |
| MessageFormat.format( |
| GettextResource.gettext(catalog, |
| "This program is running as process number {0}."), |
| new Object[] { getPid() })); |
| panelLayout.addWidget(label2); |
| |
| QWidget buttonBar = new QWidget(); |
| QHBoxLayout buttonBarLayout = new QHBoxLayout(); |
| QWidget filler = new QWidget(); // makes the button right-aligned |
| buttonBarLayout.addWidget(filler); |
| QPushButton button = new QPushButton("OK"); |
| button.setMaximumWidth(button.sizeHint().width()+20); |
| button.clicked.connect(window, "close()"); |
| buttonBarLayout.addWidget(button); |
| buttonBar.setLayout(buttonBarLayout); |
| panelLayout.addWidget(buttonBar); |
| |
| panel.setLayout(panelLayout); |
| |
| window.setCentralWidget(panel); |
| |
| window.show(); |
| |
| QApplication.exec(); |
| } |
| |
| /* 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 "???"; |
| } |
| } |