import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.image.BufferedImage;
import javax.imageio.*;
public class ClientVNC extends JFrame {
private Image img;
private Image img1;
public ClientVNC()
{
img = getToolkit().getImage("C:\\img1.png");
img1 = getToolkit().getImage("C:\\img2.png");
MediaTracker mt = new MediaTracker(this);
mt.addImage(img, 0);
try {
mt.waitForAll();
}
catch (InterruptedException e)
{
}
initComponents();
setLayout(new BorderLayout());
add(new BildPanel(img));
}
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
labelIPAdresse = new javax.swing.JLabel();
textFeldIPAdresse = new javax.swing.JTextField();
labelPortnummer = new javax.swing.JLabel();
textFeldPortnummer = new javax.swing.JTextField();
buttonVerbinden = new javax.swing.JButton();
buttonSchliessen = new javax.swing.JButton();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
labelStatus = new javax.swing.JLabel();
labelDisplay = new javax.swing.JLabel();
MenuBar = new javax.swing.JMenuBar();
datei = new javax.swing.JMenu();
schliessen = new javax.swing.JMenuItem();
ProgrammInfo = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("VNC Client");
setAlwaysOnTop(true);
setBounds(new java.awt.Rectangle(100, 50, 440, 0));
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jPanel1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
labelIPAdresse.setText(" IP- Adresse:");
textFeldIPAdresse.setHorizontalAlignment(javax.swing.JTextField.CENTER);
textFeldIPAdresse.setText("10.0.0.196");
labelPortnummer.setText("Portnummer:");
textFeldPortnummer.setHorizontalAlignment(javax.swing.JTextField.CENTER);
textFeldPortnummer.setText("5900");
buttonVerbinden.setText("Verbinden");
buttonVerbinden.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
buttonVerbinden.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonVerbindenActionPerformed(evt);
}
});
buttonSchliessen.setText("Schlie\u00dfen");
buttonSchliessen.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
buttonSchliessen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonSchliessenActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(labelIPAdresse, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFeldIPAdresse, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelPortnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textFeldPortnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 66, Short.MAX_VALUE)
.addComponent(buttonVerbinden, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonSchliessen, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelIPAdresse, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE)
.addComponent(textFeldIPAdresse, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(labelPortnummer, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(textFeldPortnummer, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(buttonSchliessen)
.addComponent(buttonVerbinden))
);
jPanel2.setBackground(new java.awt.Color(255, 255, 255));
jPanel2.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
jLabel1.setText(" Status:");
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(199, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE)
.addComponent(labelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
);
labelDisplay.setBorder(javax.swing.BorderFactory.createEtchedBorder());
datei.setText("Datei");
schliessen.setText("Schlie\u00dfen");
schliessen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
schliessenActionPerformed(evt);
}
});
datei.add(schliessen);
MenuBar.add(datei);
ProgrammInfo.setText("Programminfo");
MenuBar.add(ProgrammInfo);
setJMenuBar(MenuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGap(120, 120, 120)
.addComponent(labelDisplay, javax.swing.GroupLayout.PREFERRED_SIZE, 303, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(87, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(86, 86, 86)
.addComponent(labelDisplay, javax.swing.GroupLayout.PREFERRED_SIZE, 219, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 286, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
pack();
}// </editor-fold>
private void buttonVerbindenActionPerformed(java.awt.event.ActionEvent evt) {
try {
OutputThread outTh = new OutputThread();
outTh.start();
}
catch (Exception exsock)
{
labelStatus.setText("Fehler bei der Verbindung: " + exsock);
System.out.println("Thread konnte nicht gestartet werden: " + exsock);
}
}
private void buttonSchliessenActionPerformed(java.awt.event.ActionEvent evt) {
try {
sock.close();
}
catch(Exception io)
{
System.out.println("Die Verbindung konnte nicht geschlossen werden: " + io);
}
System.exit(0);
}
private void schliessenActionPerformed(java.awt.event.ActionEvent evt) {
try {
sock.close();
}
catch(Exception io)
{
System.out.println("Die Verbindung konnte nicht geschlossen werden: " + io);
}
System.exit(0);
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new ClientVNC().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JMenuBar MenuBar;
private javax.swing.JMenu ProgrammInfo;
private javax.swing.JButton buttonSchliessen;
private javax.swing.JButton buttonVerbinden;
private javax.swing.JMenu datei;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JLabel labelDisplay;
private javax.swing.JLabel labelIPAdresse;
private javax.swing.JLabel labelPortnummer;
public javax.swing.JLabel labelStatus;
private javax.swing.JMenuItem schliessen;
private javax.swing.JTextField textFeldIPAdresse;
private javax.swing.JTextField textFeldPortnummer;
// End of variables declaration
public boolean pwRichtig;
public Socket sock;
public int state;
public int welcherButton;
}
/* Klasse zum Ausgaben des PowerPanels */
class BildPanel extends JPanel{
private Image img;
public BildPanel(Image img){
this.img = img;
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img,0,0,this);
}
}