hallo
ich will in mein programm ein systray einbauen damit es in systray geht!
das programm besteht aus 6 java files.
will das von
http://systray.sourceforge.net/
das ist speziell für java programme!
wie kann ich es intregrieren ?
http://prdownloads.sourceforge.net/systray/systray4j-2.4.1-win32.zip?download
http://prdownloads.sourceforge.net/systray/systray4j-2.4.1-win32-src.zip?download
würde es reichen die class dateien in mein tortunnel classes rein zu packen
und in die manifest datei
noch class-path einfügen?
die ganzen classes sind auch als source verfügbar!
dann würde dass manifest datei so aussehehn oder?
habe das ganze classes von
systray4j.jar
in verzeichnis wo tortunnelgui ist rein kopiert.
und es zusammengepackt in ein jar datei.
ich kann mein programm aufrufen aber nichts von systray zeug zu sehen.
beim beispiel vom sytray4.jar wird mit dem code ausgeführt mit
java -cp systray4j.jar;example Example
ich will das beispiel in mein programm intregrieren!
sourcecode vom tortunnelgui.java
[/img]
ich will in mein programm ein systray einbauen damit es in systray geht!
das programm besteht aus 6 java files.
will das von
http://systray.sourceforge.net/
das ist speziell für java programme!
wie kann ich es intregrieren ?
http://prdownloads.sourceforge.net/systray/systray4j-2.4.1-win32.zip?download
http://prdownloads.sourceforge.net/systray/systray4j-2.4.1-win32-src.zip?download

würde es reichen die class dateien in mein tortunnel classes rein zu packen
und in die manifest datei
noch class-path einfügen?


die ganzen classes sind auch als source verfügbar!
dann würde dass manifest datei so aussehehn oder?
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.2
Created-By: 1.4.2_06-b03 (Sun Microsystems Inc.)
Main-Class: org.eff.tor.tortunnel.TorTunnelGUI
class-Path: org.eff.tor.tortunnel.SysTrayMenu
habe das ganze classes von
systray4j.jar
in verzeichnis wo tortunnelgui ist rein kopiert.
und es zusammengepackt in ein jar datei.
ich kann mein programm aufrufen aber nichts von systray zeug zu sehen.
beim beispiel vom sytray4.jar wird mit dem code ausgeführt mit
java -cp systray4j.jar;example Example
ich will das beispiel in mein programm intregrieren!
sourcecode vom tortunnelgui.java
Code:
/*
* TorTunnelGUI.java
*
* free (adj.): unencumbered; not under the control of others Written by duck in
* 2005 and released into the public domain with no warranty of any kind, either
* expressed or implied. It probably won't make your computer catch on fire, or
* eat your children, but it might. Use at your own risk.
*/
package org.eff.tor.tortunnel;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import org.eff.tor.tortunnel.util.Settings;
import org.eff.tor.tortunnel.util.TCPTunnel;
public class TorTunnelGUI extends JFrame implements ActionListener {
private int proxyPort, localPort, remotePort;
private String proxyHost, remoteHost;
private boolean multi = true, verbose = true;
private JButton exitButton = new JButton("Exit");
public TorTunnelGUI() {
super("TorTunnel");
init();
Container panel = getContentPane();
panel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
JLabel titleLabel = new JLabel("TorTunnel by duck");
titleLabel.setFont(new Font("SansSerif", Font.BOLD, 24));
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 2;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(titleLabel, c);
JLabel currentSettingsLabel = new JLabel(
"Running with settings from \"" + Constants.CONFIG_FILE + "\"");
c.gridx = 0;
c.gridy = 1;
c.gridwidth = 2;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(currentSettingsLabel, c);
JLabel proxyLabel = new JLabel("Proxy:");
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 1;
c.weightx = 0.5;
c.insets = new Insets(10, 0, 0, 0);
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(proxyLabel, c);
JLabel proxyValueLabel = new JLabel(proxyHost + ":" + proxyPort);
c.gridx = 1;
c.gridy = 2;
c.gridwidth = 1;
c.weightx = 0.5;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(proxyValueLabel, c);
JLabel localLabel = new JLabel("Local:");
c.gridx = 0;
c.gridy = 3;
c.gridwidth = 1;
c.weightx = 0.5;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(localLabel, c);
JLabel localValueLabel = new JLabel("*:" + localPort);
c.gridx = 1;
c.gridy = 3;
c.gridwidth = 1;
c.weightx = 0.5;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(localValueLabel, c);
JLabel remoteLabel = new JLabel("Remote:");
c.gridx = 0;
c.gridy = 4;
c.gridwidth = 1;
c.weightx = 0.5;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(remoteLabel, c);
JLabel remoteValueLabel = new JLabel(remoteHost + ":" + remotePort);
c.gridx = 1;
c.gridy = 4;
c.gridwidth = 1;
c.weightx = 0.5;
c.anchor = GridBagConstraints.FIRST_LINE_START;
panel.add(remoteValueLabel, c);
exitButton.addActionListener(this);
c.gridx = 0;
c.gridy = 5;
c.gridwidth = 2;
c.insets = new Insets(10, 0, 0, 0);
c.anchor = GridBagConstraints.CENTER;
panel.add(exitButton, c);
setSize(new Dimension(280, 200));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
try {
Settings settings = Settings.getInstance(Constants.CONFIG_FILE);
settings.loadSettings();
proxyHost = settings.getProperty("ProxyHost",
Constants.DEFAULT_PROXY_HOST);
proxyPort = Integer.parseInt(settings.getProperty("ProxyPort",
Constants.DEFAULT_PROXY_PORT));
localPort = Integer.parseInt(settings.getProperty("LocalPort",
Constants.DEFAULT_LOCAL_PORT));
remoteHost = settings.getProperty("RemoteHost",
Constants.DEFAULT_REMOTE_HOST);
remotePort = Integer.parseInt(settings.getProperty("RemotePort",
Constants.DEFAULT_REMOTE_PORT));
settings.saveSettings();
} catch (Exception e) {
System.err.println(e);
JOptionPane.showMessageDialog(null, "error",
"Error reading the configuration file",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
}
public void start() {
try {
TCPTunnel tunnel = new TCPTunnel(proxyHost, proxyPort, localPort,
remoteHost, remotePort);
tunnel.setVerbose(verbose);
tunnel.setMultiConnection(multi);
tunnel.run();
} catch (IOException ioe) {
System.err.println(ioe);
System.exit(1);
}
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == exitButton) {
System.exit(0);
}
}
public static void main(String[] args) {
TorTunnelGUI gui = new TorTunnelGUI();
gui.show();
gui.start();
}
}