Applet auf lokalem Rechner mit der EingabeAufforderung Starten

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Hi, also ich hab mein Programm soweit fertig, und möchte nun
das Programm als Applet starten, lokal auf meinem Rechner, mit der Eingabeaufforderung
aber wenn ich das starte, zeigt die Fehlermeldung mir immer wieder
auf die Erste Zeile,
und in der ersten Zeile
importet meine ChatKlasse
import.java.applet.Applet;
was mache ich falsch, die Klasse ist extends Applet
und um sie anzuzeigen habe ich mich für das MainFrame entschiéden, ich habe auch zum KlasPath Java3D Angefügt, damit ich über die Eingabeaufforderung das Mainframe verwenden kann, aber das geht nicht schaut hier mal die FehlerException
Code:
ECHO ist eingeschaltet (ON).

F:\FUTUR.PROGRAMS\Chat.Programm>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\W
indows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\QuickTime\Q
TSystem\;C:\Program Files\Haufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-
Online_Software_6\Basis-Software\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Fi
les\Nero\Lib\;C:\Program Files\Common Files\Nero\Lib\

F:\FUTUR.PROGRAMS\Chat.Programm>javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3du
tils.jar;F:\Imports\vecmath.jar; JavaChat_1.java
Note: JavaChat_1.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

F:\FUTUR.PROGRAMS\Chat.Programm>java -cp F:\Imports\j3dcore.jar;F:\Imports\j3dut
ils.jar;F:\Imports\vecmath.jar; JavaChat_1
[highlight]
Exception in thread "Thread-4" java.lang.NullPointerException
        at JavaChat_1.start(JavaChat_1.java:1)
        at com.sun.j3d.utils.applet.MainFrame.run(MainFrame.java:270)
        at java.lang.Thread.run(Thread.java:619)
[/highlight]
F:\FUTUR.PROGRAMS\Chat.Programm>pause
Drücken Sie eine beliebige Taste . . .
Ich hab das halt mit ner Batch Datei geschrieben, für alle, die meine Klasse "JavaChat_1" nicht kennen, der Quellcode ist als erstes gepostet in folgendem Thread:
[highlight="Java"]
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Event;
import java.awt.Font;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import com.sun.j3d.utils.applet.MainFrame;

public class JavaChat_1 extends Applet implements Runnable
{

public static final int PORT = 1;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;

String name;

public JavaChat_1()
{

File f = new File("F:/FUTUR.PROGRAMS/Chat/Saves.txt");
name = getContents(f);
new chatserver();
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);

this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);

this.setBackground(Color.cyan);
this.setForeground(Color.cyan);
inputfield.setBackground(Color.black);
outputarea.setBackground(Color.black);

JMenuBar bar = new JMenuBar();bar.setBackground(Color.black);this.add(bar,BorderLayout.NORTH);

JMenu m = new JMenu("Start");m.setForeground(Color.cyan);bar.add(m);

JMenuItem i = new JMenuItem("Benutzternamen ändern");i.setForeground(Color.cyan);i.setBackground(Color.black);m.add(i);
i.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Ändern(),200,250);
}
});
JMenuItem o = new JMenuItem("PORT ändern");o.setForeground(Color.cyan);o.setBackground(Color.black);m.add(o);
o.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Porter(),200,250);
}
});

JMenuItem i1 = new JMenuItem("Beenden");i1.setForeground(Color.cyan);i1.setBackground(Color.black);m.add(i1);
i1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
System.exit(0);
}
});

JTextArea a = new JTextArea();
a.setText(" Java_Chat_1.0");a.setEnabled(false); bar.add(a);a.setBackground(Color.black);

JMenu me = new JMenu("Hilfe");
me.setForeground(Color.cyan);
bar.add(me);

JMenuItem m1 = new JMenuItem("Hilfe aufrufen");
m1.setBackground(Color.black); m1.setForeground(Color.cyan);
me.add(m1);

i1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame (new Help(),200,250);
}
});

}

public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
}

say(name+" ist der ChatSitzung im Port:"+PORT+" beigetreten.");

if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}


public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}

if ((thread !=null) && thread.isAlive())
{
thread.stop();
thread = null;
}
}


public void run()
{
String line;

try
{
while(true)
{
line = in.readLine();
if(line!=null)
outputarea.appendText(line+'\n' );
}
} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
}

public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String)name+": "+ e.arg;

out.println(inp);
inputfield.setText("");
return true;
}

return false;
}


public void say(String msg)
{
outputarea.appendText("*** "+msg+" ***\n");
}

static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
public static void main(String[]args)
{
new MainFrame(new JavaChat_1(),200,250);
}
}

[/highlight]

@ADMIN
seht ihr, ich kann das mit HightLight jetzt auch!

bei mir klappt das in Eclipse ohne Probleme, aber was mache ich denn falsch?
 
Zuletzt bearbeitet von einem Moderator:

Schandro

Top Contributor
aber was mache ich denn falsch?
1. Du machst Drippelposts
2. Du vermischst AWT und Swing
3. Du willst ein Applet als Application benutzen
4. Deine Fehlermeldung ist zuwenig aussagekräftig, (In Zeile 1 bei den Importen soll eine NullPointerException auftreten?)

€dit:
5. Du hältst dich nicht an die Coding Conventions:
new chatserver();
 
Zuletzt bearbeitet:

hdi

Top Contributor
new Chatserver(); geht nicht

hat keiner gesagt. Er meinte nur, du hälst dich nicht an die Code-Conventions.
Man schreibt

new ChatServer()

und nicht

new chatserver oder new Chatserver

Das nennt sich "CamelCase", und das ist eben die Namens-Konvention für Klassen.
Genauso wie für Variablen die Namens-Konvention "camelCase" ist, also nicht wie bei dir:

somearea

sondern:

someArea

...aber das hat man dir ja schon 54 mal gesagt...

Das sind "nur" Konventionen, das hat nix damit zu tun ob dein Programm funktioniert oder nicht
 

Developer_X

Top Contributor
Aber verdammt noch mal, irgendwie muss man doch ein Applet auf dem PC starten können, ohne das gleich in eine HTML einbetten zu müssen oder?
Wenn ja wie?
bitte ohne eclipse
so
mit hilfe einer batch datei gestartet

BITTE!!!
Ich versteh nicht was ich falsch mache
...
 
Zuletzt bearbeitet:

Illuvatar

Top Contributor
Und was spricht gegen die HTML? Applets sind nun mal dafür gedacht, innerhalb eines HTML-Dokuments zu stehen. Wenn du dann den appletviewer verwendest, hast du es immerhin auch außerhalb vom Browser.
Irgendwie geht es vermutlich schon auch ohne ein HTML-Dokument. Wenn man aber bedenkt, dass das HTML-Dokument typischerweise 8 Zeilen hat, und das andere ein ziemlicher Krampf ist, würde mir die Entscheidung nicht schwer fallen.
 

diggaa1984

Top Contributor
finde das hier nun nich wirklich schwer :D
hab zwar kein plan von applets, aber das hier würde mir reichen um was nich im browser anzuschaun.

Und wenns nur über AppletViewer+HTML oder eben im Browser komfortabel geht sollte man doch nich auf Krampf versuchen das anders zu machen, weil das kost dann einfach nur Nerven. Was stört denn am HMTL?

Der-Java-Appletviewer super simpel
 

Schandro

Top Contributor
Oh mann developer, warum willst du den unbedingt ein Applet als Applikation starten? Weil du irgendwo einen Code für ein Applet rauskopiert hast, es aber nicht schaffst ihn z.b. auf ein JFrame umzuschreiben? Soll jetzt keine unterstellung sein, sondern nur ne Vermutung
 
Zuletzt bearbeitet:
S

Spacerat

Gast
Ich bin mir nicht sicher, ob ich das mal so bringen soll...
So ungefähr sieht der Krampf einer HybridApplikation (Applet und Anwendung in einem) aus (for copy and paste).[highlight=java]import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.sound.sampled.AudioFormat.Encoding;

public final class HybridApplication
extends Applet
{
private static final long serialVersionUID = 4881953554409778241L;
private final HashMap<String, InputStream> appStreams = new HashMap<String, InputStream>();
private final HashMap<String, String> appParams = new HashMap<String, String>();

public final boolean applicationRun;

private HybridApplication(boolean application)
{
applicationRun = application;
}

public HybridApplication()
{
this(false);
}

//----------------------------------------------------
// Applet-Implementation Anfang
// ...


// Applet-Implementation Ende
//----------------------------------------------------

public static void main(String ... args)
{
final Frame f = new Frame("Hybrid Application Demo");
final HybridApplication applet = new HybridApplication(true);
final Enumeration<Applet> appletEnum = new Enumeration<Applet>()
{
public boolean hasMoreElements()
{
return false;
}

public Applet nextElement()
{
return null;
}
};
final AppletContext context = new AppletContext()
{
public Applet getApplet(String name)
{
return null; // not in application mode
}

public Enumeration<Applet> getApplets()
{
return appletEnum;
}

public AudioClip getAudioClip(URL url)
{
try {
final Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
if(Encoding.ALAW.equals(af.getEncoding())
|| Encoding.ULAW.equals(af.getEncoding())) {
af = new AudioFormat(
Encoding.PCM_SIGNED,
af.getSampleRate(),
af.getSampleSizeInBits() * 2,
af.getChannels(),
af.getFrameSize() * 2,
af.getFrameRate(),
true
);
ais = AudioSystem.getAudioInputStream(af, ais);
}
clip.open(ais);
return new AudioClip()
{
public void loop()
{
clip.loop(-1);
}

public void play()
{
clip.start();
}

public void stop()
{
clip.stop();
}
};
} catch(LineUnavailableException e) {
e.printStackTrace();
return null;
} catch(IOException e) {
e.printStackTrace();
return null;
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
return null;
}
}

public Image getImage(URL url)
{
return Toolkit.getDefaultToolkit().getImage(url);
}

public InputStream getStream(String key)
{
return applet.appStreams.get(key);
}

public Iterator<String> getStreamKeys()
{
return applet.appStreams.keySet().iterator();
}

public void setStream(String key, InputStream stream)
throws IOException
{
if(key != null && key.length() > 0) {
applet.appStreams.put(key, stream);
}
}

public void showDocument(URL url)
{
// no effect
}

public void showDocument(URL url, String target)
{
// no effect
}

public void showStatus(String status)
{
// no effect
}

};
AppletStub stub = new AppletStub()
{
public void appletResize(int width, int height)
{
}

public AppletContext getAppletContext()
{
return context;
}

public URL getCodeBase()
{
URL rc = HybridApplication.class.getResource("HybridApplication.class");
return rc;
}

public URL getDocumentBase()
{
URL rc = HybridApplication.class.getResource("HybridApplication.class");
if(rc.getProtocol().equalsIgnoreCase("jar")) {
try {
String tmp = rc.toString().substring(4, rc.toString().indexOf("!/"));
tmp = rc.toString().replaceAll("jar:", "").replaceAll("file:/", "file://");
tmp = tmp.substring(0, tmp.lastIndexOf("!/"));
rc = new URL(null, tmp);
} catch(MalformedURLException e) {
e.printStackTrace();
rc = null;
}
}
return rc;
}

public String getParameter(String name)
{
return applet.appParams.get(name);
}

public boolean isActive()
{
return f.isActive();
}

};
applet.setStub(stub);
if(args != null && args.length > 0) {
String[] pars;
for(String arg : args) {
pars = arg.split("=");
if(pars.length == 1) pars = new String[] {pars[0], "true"};
applet.appParams.put(pars[0].toLowerCase(), pars[1]);
}
}
f.setLayout(new GridLayout(1, 1, 0, 0));
String arg;
int width, height;
try {
width = ((arg = applet.getParameter("width")) != null)? Integer.parseInt(arg) : 800;
} catch(NumberFormatException e) {
width = 800;
}
try {
height = ((arg = applet.getParameter("height")) != null)? Integer.parseInt(arg) : 600;
} catch(NumberFormatException e) {
height = 600;
}
Dimension d = new Dimension(width, height);
applet.setPreferredSize(d);
applet.setSize(d);
f.addWindowListener(new WindowListener()
{
public void windowActivated(WindowEvent e)
{
applet.start();
}

public void windowClosed(WindowEvent e)
{
System.exit(0);
}

public void windowClosing(WindowEvent e)
{
applet.stop();
applet.destroy();
f.dispose();
}

public void windowDeactivated(WindowEvent e)
{
applet.stop();
}

public void windowDeiconified(WindowEvent e)
{
applet.start();
}

public void windowIconified(WindowEvent e)
{
applet.stop();
}

public void windowOpened(WindowEvent e)
{
}
});
applet.init();
f.add(applet);
f.pack();
f.setVisible(true);
}
}[/highlight]wie? barbarisch implementiert? Was solls... DX wird's hoffentlich lesen können. Wen man bedenkt, was er uns immer liefert...
 
S

Spacerat

Gast
Na klar... :D

... äh in welcher Hinsicht? So barbarisch die Implementation auch ist... sie funktioniert. Ja auch als Applet (trotz z.B. "Toolkit.getImage()" -> SicherheitsManager wird dort abgefragt). Ausserdem bekommt das Applet in einer HTML-Seite einen ganz anderen "Stub" (und damit auch einen anderen "Context"). Das einzige was mir (nicht wirklich) Schmerzen bereitet, ist die Ahnung, das DX damit nicht hinbekommt. Wenn der wüsste, das er eigentlich nur die "main"-Methode kopieren braucht und den Namen der Klasse ändern muss...
 
Zuletzt bearbeitet von einem Moderator:

FatFire

Bekanntes Mitglied
:lol: Aber wenn Du ihn hättest verwirren wollen, hätte es doch auch ein Zweizeiler getan. Möglicherweise auch ein Einzeiler, wer weiß...
 

Developer_X

Top Contributor
Deins funktioniert in Eclipse bei mir wieder, aber leider nicht so, mit Eingabeaufforderung:
[highlight=Java]

import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.Socket;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

import com.sun.j3d.utils.applet.MainFrame;
public class JavaChat_1 extends Applet implements Runnable
{

public static final int PORT = 1;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;

private final HashMap<String, InputStream> appStreams = new HashMap<String, InputStream>();
private final HashMap<String, String> appParams = new HashMap<String, String>();

String name;

public JavaChat_1()
{

File f = new File("F:/FUTUR.PROGRAMS/Chat/Saves.txt");
name = getContents(f);
new chatserver();
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);

this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);

this.setBackground(Color.cyan);
this.setForeground(Color.cyan);
inputfield.setBackground(Color.black);
outputarea.setBackground(Color.black);

JMenuBar bar = new JMenuBar();bar.setBackground(Color.black);this.add(bar,BorderLayout.NORTH);

JMenu m = new JMenu("Start");m.setForeground(Color.cyan);bar.add(m);

JMenuItem i = new JMenuItem("Benutzternamen ändern");i.setForeground(Color.cyan);i.setBackground(Color.black);m.add(i);
i.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Ändern(),200,250);
}
});
JMenuItem o = new JMenuItem("PORT ändern");o.setForeground(Color.cyan);o.setBackground(Color.black);m.add(o);
o.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Porter(),200,250);
}
});

JMenuItem i1 = new JMenuItem("Beenden");i1.setForeground(Color.cyan);i1.setBackground(Color.black);m.add(i1);
i1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
System.exit(0);
}
});

JTextArea a = new JTextArea();
a.setText(" Java_Chat_1.0");a.setEnabled(false); bar.add(a);a.setBackground(Color.black);

JMenu me = new JMenu("Hilfe");
me.setForeground(Color.cyan);
bar.add(me);

JMenuItem m1 = new JMenuItem("Hilfe aufrufen");
m1.setBackground(Color.black); m1.setForeground(Color.cyan);
me.add(m1);

m1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame (new Help(),200,250);
}
});

}

public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
}

say(name+" ist der ChatSitzung im Port:"+PORT+" beigetreten.");

if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}


public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}

if ((thread !=null) && thread.isAlive())
{
thread.stop();
thread = null;
}
}


public void run()
{
String line;

try
{
while(true)
{
line = in.readLine();
if(line!=null)
outputarea.appendText(line+'\n' );
}
} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
}

public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String)name+": "+ e.arg;

out.println(inp);
inputfield.setText("");
return true;
}

return false;
}


public void say(String msg)
{
outputarea.appendText("*** "+msg+" ***\n");
}

static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
public static void main(String ... args)
{
final Frame f = new Frame("Hybrid Application Demo");
final JavaChat_1 applet = new JavaChat_1();
final Enumeration<Applet> appletEnum = new Enumeration<Applet>()
{
public boolean hasMoreElements()
{
return false;
}

public Applet nextElement()
{
return null;
}
};
final AppletContext context = new AppletContext()
{
public Applet getApplet(String name)
{
return null; // not in application mode
}

public Enumeration<Applet> getApplets()
{
return appletEnum;
}

public AudioClip getAudioClip(URL url)
{
try {
final Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
if(Encoding.ALAW.equals(af.getEncoding())
|| Encoding.ULAW.equals(af.getEncoding())) {
af = new AudioFormat(
Encoding.PCM_SIGNED,
af.getSampleRate(),
af.getSampleSizeInBits() * 2,
af.getChannels(),
af.getFrameSize() * 2,
af.getFrameRate(),
true
);
ais = AudioSystem.getAudioInputStream(af, ais);
}
clip.open(ais);
return new AudioClip()
{
public void loop()
{
clip.loop(-1);
}

public void play()
{
clip.start();
}

public void stop()
{
clip.stop();
}
};
} catch(LineUnavailableException e) {
e.printStackTrace();
return null;
} catch(IOException e) {
e.printStackTrace();
return null;
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
return null;
}
}

public Image getImage(URL url)
{
return Toolkit.getDefaultToolkit().getImage(url);
}

public InputStream getStream(String key)
{
return applet.appStreams.get(key);
}

public Iterator<String> getStreamKeys()
{
return applet.appStreams.keySet().iterator();
}

public void setStream(String key, InputStream stream)
throws IOException
{
if(key != null && key.length() > 0) {
applet.appStreams.put(key, stream);
}
}

public void showDocument(URL url)
{
// no effect
}

public void showDocument(URL url, String target)
{
// no effect
}

public void showStatus(String status)
{
// no effect
}

};
AppletStub stub = new AppletStub()
{
public void appletResize(int width, int height)
{
}

public AppletContext getAppletContext()
{
return context;
}

public URL getCodeBase()
{
URL rc = JavaChat_1.class.getResource("HybridApplication.class");
return rc;
}

public URL getDocumentBase()
{
URL rc = JavaChat_1.class.getResource("HybridApplication.class");
if(rc.getProtocol().equalsIgnoreCase("jar")) {
try {
String tmp = rc.toString().substring(4, rc.toString().indexOf("!/"));
tmp = rc.toString().replaceAll("jar:", "").replaceAll("file:/", "file://");
tmp = tmp.substring(0, tmp.lastIndexOf("!/"));
rc = new URL(null, tmp);
} catch(MalformedURLException e) {
e.printStackTrace();
rc = null;
}
}
return rc;
}

public String getParameter(String name)
{
return applet.appParams.get(name);
}

public boolean isActive()
{
return f.isActive();
}

};
applet.setStub(stub);
if(args != null && args.length > 0) {
String[] pars;
for(String arg : args) {
pars = arg.split("=");
if(pars.length == 1) pars = new String[] {pars[0], "true"};
applet.appParams.put(pars[0].toLowerCase(), pars[1]);
}
}
f.setLayout(new GridLayout(1, 1, 0, 0));
String arg;
int width, height;
try {
width = ((arg = applet.getParameter("width")) != null)? Integer.parseInt(arg) : 800;
} catch(NumberFormatException e) {
width = 800;
}
try {
height = ((arg = applet.getParameter("height")) != null)? Integer.parseInt(arg) : 600;
} catch(NumberFormatException e) {
height = 600;
}
Dimension d = new Dimension(width, height);
applet.setPreferredSize(d);
applet.setSize(d);
f.addWindowListener(new WindowListener()
{
public void windowActivated(WindowEvent e)
{
applet.start();
}

public void windowClosed(WindowEvent e)
{
System.exit(0);
}

public void windowClosing(WindowEvent e)
{
applet.stop();
applet.destroy();
f.dispose();
}

public void windowDeactivated(WindowEvent e)
{
applet.stop();
}

public void windowDeiconified(WindowEvent e)
{
applet.start();
}

public void windowIconified(WindowEvent e)
{
applet.stop();
}

public void windowOpened(WindowEvent e)
{
}
});
applet.init();
f.add(applet);
f.pack();
f.setVisible(true);
}

}


[/highlight]
PS:
Spacerat, das hat mir schon etwas weitergeholfen, aber nicht ganz
 
Zuletzt bearbeitet:

FatFire

Bekanntes Mitglied
Aha, zwei Sätze (der eine in Deinem berühmt berüchtigten Idiotendeutsch, oder wie das heißt), 470 Zeilen Code, keine Fehlermeldung...was erwartest Du jetzt?
Problem gelöst? Oder soll jetzt jeder die Anwendung kompilieren und raten, was Dein Problem ist? Oder noch besser Zeile für Zeile des Codes durchgehen und schauen wo noch ein Fehler sein könnte?
Sollen wir bei der Gelegenheit auch die Klassen nachbauen, die uns zum Testen fehlen? Davon mal ab:
[HIGHLIGHT="Java"]new Ändern()[/HIGHLIGHT]
AAAAAAAAAHHHHHHH, Umlaute in Klassennamen, das ist echt übel. Erlaubt, aber übel.

Kein Gruß mehr dafür
FatFire

PS: Kauf Dir doch bitte mal ein Buch und lese es (langsam hab ich sogar das Gefühl, es ist egal was für eins, lernen würdest Du so oder so noch was). Das Forum hier ist kein interaktiver Java-Lernkurs.
 
S

Spacerat

Gast
Mal langsam... Er hat ja immerhin schon das gemacht, was ich kaum erwartet hätte... (steht in meinem Beitrag mit "Spoiler" added. Wer's nicht lesen kann, einfach gesammten beitrag markieren, der Text geht hinter "hinbekommt" noch weiter...). Ok... Ich hab' da was angefangen, ich werd's beenden...[highlight=java]import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.Socket;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;
import com.sun.j3d.utils.applet.MainFrame;

public class JavaChat_1
extends Applet
implements Runnable
{
private static final long serialVersionUID = 8513817504469370403L;
private final HashMap<String, InputStream> appStreams = new HashMap<String, InputStream>();
private final HashMap<String, String> appParams = new HashMap<String, String>();

public final boolean applicationRun;
public static final int PORT = 1;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;

String name;

private JavaChat_1(boolean application)
{
applicationRun = application;
File f = new File("F:/FUTUR.PROGRAMS/Chat/Saves.txt");
name = getContents(f);
new chatserver(); // <--------- Klasse fehlt!!!! (CamelCase!!!)
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);

this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);

this.setBackground(Color.cyan);
this.setForeground(Color.cyan);
inputfield.setBackground(Color.black);
outputarea.setBackground(Color.black);

JMenuBar bar = new JMenuBar();bar.setBackground(Color.black);this.add(bar,BorderLayout.NORTH);

JMenu m = new JMenu("Start");m.setForeground(Color.cyan);bar.add(m);

JMenuItem i = new JMenuItem("Benutzternamen ändern");i.setForeground(Color.cyan);i.setBackground(Color.black);m.add(i);
i.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Ändern(),200,250); // <----- Klasse fehlt (Umlaute gehen gar nicht!!!)
}
});
JMenuItem o = new JMenuItem("PORT ändern");o.setForeground(Color.cyan);o.setBackground(Color.black);m.add(o);
o.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Porter(),200,250); // <----- Klasse fehlt
}
});

JMenuItem i1 = new JMenuItem("Beenden");i1.setForeground(Color.cyan);i1.setBackground(Color.black);m.add(i1);
i1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
System.exit(0);
}
});

JTextArea a = new JTextArea();
a.setText(" Java_Chat_1.0");a.setEnabled(false); bar.add(a);a.setBackground(Color.black);

JMenu me = new JMenu("Hilfe");
me.setForeground(Color.cyan);
bar.add(me);

JMenuItem m1 = new JMenuItem("Hilfe aufrufen");
m1.setBackground(Color.black); m1.setForeground(Color.cyan);
me.add(m1);

m1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame (new Help(),200,250); // <----- Klasse fehlt
}
});
}

public JavaChat_1()
{
this(true);
}

public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
}

say(name+" ist der ChatSitzung im Port:"+PORT+" beigetreten.");

if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}


public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}

if ((thread !=null) && thread.isAlive())
{
thread.interrupt();
thread = null;
}
}


public void run()
{
String line;

try
{
while(true)
{
line = in.readUTF(); //.readLine();
if(line!=null)
outputarea.append(line+'\n' );
}
} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
}

public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String)name+": "+ e.arg;

out.println(inp);
inputfield.setText("");
return true;
}

return false;
}


public void say(String msg)
{
outputarea.append("*** "+msg+" ***\n");
}

static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
public static void main(String ... args)
{
final Frame f = new Frame("Hybrid Application Demo");
final JavaChat_1 applet = new JavaChat_1();
final Enumeration<Applet> appletEnum = new Enumeration<Applet>()
{
public boolean hasMoreElements()
{
return false;
}

public Applet nextElement()
{
return null;
}
};
final AppletContext context = new AppletContext()
{
public Applet getApplet(String name)
{
return null; // not in application mode
}

public Enumeration<Applet> getApplets()
{
return appletEnum;
}

public AudioClip getAudioClip(URL url)
{
try {
final Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
if(Encoding.ALAW.equals(af.getEncoding())
|| Encoding.ULAW.equals(af.getEncoding())) {
af = new AudioFormat(
Encoding.PCM_SIGNED,
af.getSampleRate(),
af.getSampleSizeInBits() * 2,
af.getChannels(),
af.getFrameSize() * 2,
af.getFrameRate(),
true
);
ais = AudioSystem.getAudioInputStream(af, ais);
}
clip.open(ais);
return new AudioClip()
{
public void loop()
{
clip.loop(-1);
}

public void play()
{
clip.start();
}

public void stop()
{
clip.stop();
}
};
} catch(LineUnavailableException e) {
e.printStackTrace();
return null;
} catch(IOException e) {
e.printStackTrace();
return null;
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
return null;
}
}

public Image getImage(URL url)
{
return Toolkit.getDefaultToolkit().getImage(url);
}

public InputStream getStream(String key)
{
return applet.appStreams.get(key);
}

public Iterator<String> getStreamKeys()
{
return applet.appStreams.keySet().iterator();
}

public void setStream(String key, InputStream stream)
throws IOException
{
if(key != null && key.length() > 0) {
applet.appStreams.put(key, stream);
}
}

public void showDocument(URL url)
{
// no effect
}

public void showDocument(URL url, String target)
{
// no effect
}

public void showStatus(String status)
{
// no effect
}

};
AppletStub stub = new AppletStub()
{
public void appletResize(int width, int height)
{
}

public AppletContext getAppletContext()
{
return context;
}

public URL getCodeBase()
{
URL rc = JavaChat_1.class.getResource("JavaChat_1.class");
return rc;
}

public URL getDocumentBase()
{
URL rc = JavaChat_1.class.getResource("JavaChat_1.class");
if(rc.getProtocol().equalsIgnoreCase("jar")) {
try {
String tmp = rc.toString().substring(4, rc.toString().indexOf("!/"));
tmp = rc.toString().replaceAll("jar:", "").replaceAll("file:/", "file://");
tmp = tmp.substring(0, tmp.lastIndexOf("!/"));
rc = new URL(null, tmp);
} catch(MalformedURLException e) {
e.printStackTrace();
rc = null;
}
}
return rc;
}

public String getParameter(String name)
{
return applet.appParams.get(name);
}

public boolean isActive()
{
return f.isActive();
}

};
applet.setStub(stub);
if(args != null && args.length > 0) {
String[] pars;
for(String arg : args) {
pars = arg.split("=");
if(pars.length == 1) pars = new String[] {pars[0], "true"};
applet.appParams.put(pars[0].toLowerCase(), pars[1]);
}
}
f.setLayout(new GridLayout(1, 1, 0, 0));
String arg;
int width, height;
try {
width = ((arg = applet.getParameter("width")) != null)? Integer.parseInt(arg) : 800;
} catch(NumberFormatException e) {
width = 800;
}
try {
height = ((arg = applet.getParameter("height")) != null)? Integer.parseInt(arg) : 600;
} catch(NumberFormatException e) {
height = 600;
}
Dimension d = new Dimension(width, height);
applet.setPreferredSize(d);
applet.setSize(d);
f.addWindowListener(new WindowListener()
{
public void windowActivated(WindowEvent e)
{
applet.start();
}

public void windowClosed(WindowEvent e)
{
System.exit(0);
}

public void windowClosing(WindowEvent e)
{
applet.stop();
applet.destroy();
f.dispose();
}

public void windowDeactivated(WindowEvent e)
{
applet.stop();
}

public void windowDeiconified(WindowEvent e)
{
applet.start();
}

public void windowIconified(WindowEvent e)
{
applet.stop();
}

public void windowOpened(WindowEvent e)
{
}
});
applet.init();
f.add(applet);
f.pack();
f.setVisible(true);
}

}[/highlight]@Developer_X: Hast dich also wider erwarten, nicht ins Boxhorn jagen lassen, nur die "main" kopiert und die Klassennamen geändert (ok.. die String-Bezüge hast du vergessen... egal). Zum Problem: Warum könnte eine Klasse eine Exception in Zeile 1 werfen, da stehen doch nur Importe? Korrekt! Unter anderem auch Importe zu eigenen Klassen in eigenen Paketen. Eclipse (eigentlich jede IDE) bezieht solche Dinge beim kompilieren automatisch mit ein, was eine Eingabeaufforderung nicht tut. Im konkretem Beispiel geht es um folgende Klasse (auch im Quelltext markiert):
1. chatserver (beachte "CamelCase" -> umbenennen in "ChatServer")
2. Ändern (Umlaute gehen gar nicht... ok... wenn man weiss, was man damit erreichen will schon)
3. Porter
4. Help
Da diese Klassen in der Importliste nicht auftauchen liegen sie also im selben Verzeichnis (Paket) wie JavaChat_1, sind aber wohl nicht kompiliert. (Klassenpfad um ";." erweitert gibt Aufschluss). Wenn diese also nicht kompiliert sind muss dieses vor der Ausführung von JavaChat_1 noch passieren. Die Batchdatei ändert sich wie folgt:
Code:
set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\W
indows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\QuickTime\Q
TSystem\;C:\Program Files\Haufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-
Online_Software_6\Basis-Software\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Fi
les\Nero\Lib\;C:\Program Files\Common Files\Nero\Lib\

javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; chatserver.java

javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; Ändern.java // genau hier könnte es Probleme mit Umlauten geben

javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; Porter.java

javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; Help.java

javac -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; JavaChat_1.java

java -cp F:\Imports\j3dcore.jar;F:\Imports\j3dutils.jar;F:\Imports\vecmath.jar;.; JavaChat_1
Alles in allem dürfte das die Lösung für dieses Problem sein. Die meisten deiner anderen löst es jedoch nicht. Da hilft nunmal nur :rtfm: :rtfm: :rtfm:
@Edit:
@Developer_X: Von "13"-Järigen kann man meines Erachtens schon ein wenig Selbstständigkeit erwarten. So 'ne PN an einem anderen User gab' mir grad ein wenig zu denken... Kannst du dir eigentlich 'ne Welt ohne Internet (das bedeutet, es gibt keine Foren) vorstellen? Ich schon (musste ja ohne anfangen). Plötzlich gibt es nur noch Bücher. Und wenn man Interessehalber etwas lernen will, dann nur mit Büchern. versuchs mal... gar nicht schwer... dauert nur länger als
unbek. Verfasser hat gesagt.:
Ich will lernen... mach mir das mal
 
Zuletzt bearbeitet von einem Moderator:

Ark

Top Contributor
Ich glaube, solange das kommunikative Problem mit Developer_X besteht (welches er selbst wahrscheinlich gar nicht erkennt), sollte ihm nicht auf Code-Ebene geholfen werden.

*hoff, dass alle mitmachen*

Ark
 

hdi

Top Contributor
*hoff, dass alle mitmachen*
Ok... Ich hab' da was angefangen, ich werd's beenden... (Spacerat)
sieht schlecht aus ;)

Developer, mal ne Frage an dich:
Bist du es nicht langsam leid, dass deine Programme nie funktionieren? Dass du hier
für jeden Kack einen Thread erstellen musst, und es dann nach 10 Antworten noch
immer nicht klappt?

Es muss dir doch mal klar werden, wie schwer du es dir selber machst.
Warum, ja das frag ich mich, warum liest du nicht einfach mal die ersten
paar Kapitel der Java-Insel? Why :bahnhof:

Warum schraubst du an Java 3D und Threads herum, wenn du nich mal eine Exception lesen kannst?

Findest du nicht, dass du deine Frezeit verschwendest mit diesem Unsinn?
Lern das doch mal, dann weisst du was du tust, und musst nicht ständig raten.

Du bist jetzt hier seit, ka, 2 Monaten unterwegs? Bis jetzt hättest du schon die
halbe Java-Insel lernen können. Aber du stellst noch immer Fragen wie am ersten Tag.
Also ich weiss ja nicht was du so mit deiner Zukunft vorhast, aber wenn du jemals auch
nur halbwegs anständig programmieren können willst, musst du deine Einstellung gegenüber
dieser Sache ändern.

Und wenn dir hier jmd etwas antwortet, dann versuch das wenigstens mal 1 Minute zu
verstehen. Wie oft wurde dir hier gesagt, dass du ein Applet als Applikation starten willst?
Und wie scheisse und unsinnig das ist?
Aber du ignorierst es schön und heulst uns hier weiter mit deinen Fehlern rum :noe:

Mein Gott... Hilfe erwarten ist schön und gut, dafür gibt's dieses Forum. Aber annehmen
sollte man sie halt dann irgendwann.

JAVA-INSEL FOR THE WIN!
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
darf ich nochma zwischenwerfen als fast nur-mitleser .. was dich daran stört nen Appletviewer zu nutzen und ne 8 zeilen-html zu bauen?! appletviewer is schon von haus aus in java vorhanden als tool. musst nichma gross was ändern, nur ne winzige html baun, dein applet normal coden und keine kopfstände machen
 

bugmenot

Mitglied
JAVA-INSEL FOR THE WIN!

Eh, hdi, was soll das eigentlich dauernd, wirst du dafür bezahlt?
Das "Java ist auch eine Insel" Buch ist zum Java lernen richtig schlecht. Hast du überhaupt mal ein einziges Kapitel darin gelesen oder empfiehlst du das nur vom Hörensagen weiter?
Ich bin mir sicher, dass alle, die Java inzwischen ganz gut können und mal in dieses Buch reingeschaut haben, da nicht widersprechen werden.
Im übrigen ist dein Java Verständnis offenbar auch nicht viel größer als das von D-X, wer hier seine "Freizeit verschwendet" ist mir also auch nicht wirklich klar.
Sorry, aber deine Beiträge muss ich dauernd lesen hier im Forum, das nervt so, das musste jetzt mal gesagt werden >:[
 

diggaa1984

Top Contributor
off-topic :autsch:, aber ich muss sagen das Buch hat mir einen super Einstieg bereitet. Gut mitlerweile reicht mir google und JDK-API aber das Buch is imho keineswegs schlecht.
 

hdi

Top Contributor
Eh, hdi, was soll das eigentlich dauernd, wirst du dafür bezahlt?
Leider nein.

Das "Java ist auch eine Insel" Buch ist zum Java lernen richtig schlecht. Hast du überhaupt mal ein einziges Kapitel darin gelesen oder empfiehlst du das nur vom Hörensagen weiter?
Teils, teils.

Ich bin mir sicher, dass alle, die Java inzwischen ganz gut können und mal in dieses Buch reingeschaut haben, da nicht widersprechen werden.
Würde ich pauschal nicht sagen. Das liegt im Moment in 8.Auflage vor, soviel
"schlechtes" Zeug findest du da nicht (mehr).

Im übrigen ist dein Java Verständnis offenbar auch nicht viel größer als das von D-X,
Unabähngig davon, ob das stimmt oder nicht: Worauf berufst du dich mit dieser Aussage?

wer hier seine "Freizeit verschwendet" ist mir also auch nicht wirklich klar.
Du kennst die ganze Vorgeschichte nicht. Zumindest gehe ich davon aus mit deinen 38 Posts.

Sorry, aber deine Beiträge muss ich dauernd lesen hier im Forum, das nervt so, das musste jetzt mal gesagt werden >:[
Seit wann stalkest du mir denn so hinterher ;) Also ich kenn dich gar nicht.
Welche Beiträge meinst du? Sowas schreibe ich ausschliesslich an Developer, und da wären
wir wieder bei: Du kennst die Vorgeschichte nicht.

Also... bitte fahr mich nich so grob an... Ich kann verstehen, dass du es nicht cool findest
wenn man so mit jemandem redet, wie ich es ab und an mit Developer tue.
Aber.. Du kennst.., naja du weisst schon ;)
 

0x7F800000

Top Contributor

fullack @diggaa1984 was die letzten beiden Beiträge betrifft
Insel ist doch okay, bietet imho ganz guten Überblick, zumindest zu Grundlagen.
 
Zuletzt bearbeitet:

hdi

Top Contributor
..und noch ein Nachtrag:

Dieses "for the win" war mit Absicht so geschrieben, eben weil ich ihm das schon tausend mal
empfohlen habe. Ich überlege nur, wie ich es ihm noch schmackhafter machen kann,
mal dieses Buch zu lesen.
Und zwar nicht, weil es die Java-Insel ist, sondern weil es ein Buch ist, das wär
ja mal n Anfang bei ihm...
 

Wildcard

Top Contributor
Du kennst die ganze Vorgeschichte nicht. Zumindest gehe ich davon aus mit deinen 38 Posts.


Seit wann stalkest du mir denn so hinterher ;) Also ich kenn dich gar nicht.
Welche Beiträge meinst du? Sowas schreibe ich ausschliesslich an Developer, und da wären
Du sprichst mit einem 'Bugmenot', sprich öffentlichem Account, du kannst daher nicht abschätzen wie viele Postings der Autor hat, oder wie lange er schon hier unterwegs ist.
Ansonsten, bitte back to topic, sofern es hier eins gibt :autsch:
 

hdi

Top Contributor
Achso, ist das jetzt der Deckname für Guest ;) (Kenn den Ausdruck nicht, falls das einer ist)

Naja umso besser, jmd versteckt sich wieder. Aber ich stimme allen voll zu, die sagen
dass diese Diskussion Off-topic ist.

Mein ursprünglicher Post an Developer war aber meines Erachtens nach On-Topic,
auch wenn es nicht um die Frage ging.

Denn bei Developers Beiträgen ist das Topic nicht der Name des Threads, sondern jedesmal
das selbe: Wie versucht man, ihm beizubringen, dass er hier im Allgemeinen etwas falsch macht?

(Ich verkriech mich jetz erstmal und bitte auch den "Bugmenot" mit eine PN zu schreiben
wenn er unbedingt weiter diskutieren will. (Was ich nicht möchte eigentlich))
 
S

Spacerat

Gast
@Developer_X: Also bei mir funktioniert dein Code. Wenn auch mit Dummy-Exemplaren der nicht veröffentlichten Klassen. Wie du unschwer erkennen kannst ist der Fehler nun auch ein komplett anderer. Kleiner Tipp: Könnte was mit dem ChatServer zu tun haben oder besser gesagt damit, wie er gestartet wird und wann, wo und wie dessen Streams (in/out) instanziert werden. Keine Abfragen ob er läuft, ob er überhaupt irgendwelche Streams liefert (nö... tut er bei dir nicht: Zeile 200; in == null!). Jetzt erwartest du sicher, das ich des Rätsels Lösung hier poste. Das aber tue ich nicht (<offtopic> könnt' ja sagen: "Meine Religion verbietet das" :lol: </offtopic>). Wenn du schon nicht lesen willst, dann versuchs doch mit einer eindringlichen Code-Analyse deiner kopierten Zeilen. Dabei könnte man noch behilflich sein, sofern du diesen in kleinen Häppchen postest (->KSKB). Aber auch die exessive Nutzung von Eclipse und dessen Debug-Funktion helfen da unheimlich. Das entspricht dann wohl auch Arks Vorstellungen, dir nicht auf Basis von gepostetem Code zu helfen.
diggaa1984 hat gesagt.:
du stehst auf schmerzen oder?
Diese Lektion tut ihm jetzt glaub' ich mehr weh als mir die Sache mit der Forcierung dieser Situation, für welche
FatFire hat gesagt.:
definitiv nicht gelangt hätte.
Spacerat hat gesagt.:
Ich hab' da was angefangen, ich werd's beenden...
"Lektion 1" endet hier.
Lernziel:
-Selbstständiges Lernen: sollte kein Problem sein, wenn man ernsthaftes Interesse an Java hat. "Ich will lernen, mach mir das mal" ist äquivalent zu "Ich liebe <Namen einsetzen>, ...(Rest ist nicht Jugendfrei)".
-"Copy/Paste" allein, hilft nicht wirklich, eigentlich gar nicht: Um kopierten Code zu werwenden, muss man ihn auch begreifen können, damit man im Fehlerfall diesen auch nachvollziehen kann. Da kann man sich besser gleich selber überlegen, wie man ein Problem löst. Wenn man allerdings nicht weis, was das Problem ist, fehlen einem die Grundlagen, und man kommt ums "ReadTheF......Manual" nicht mehr drum rum.
-Finally:
Das Leben ist kein Ponyhof
@All: Wem derartige Lektionen nicht gefallen, dem kann ich versichern, das sie mir einst auch nicht gefielen!
@Developer_X: Wie es weiter geht entscheidest du. Was wir (ich nehme an ich sprech für alle) wollen, ist:
-Beschäftige dich mit Grundlagen
-Schütt' uns nicht mit deinem Code zu, wir benötigen ihn nicht. Was wir brauchen sind "Kleine selbstständig kompilierbare Beispiele" (BTW: ich würd' "eigenständig kompilierbare" sagen). Als Übung könntest du dir ja mal diene Implementation von "ChatServer" vornehmen. Lies dir dazu mal ein Kapitel über Dienste (in diesem Fall "Java-Dienste") in deiner lieblings Java-Lektüre durch, bevor du hier die gesammte Klasse postest und (rein intuitiv aus gutem Grund, sag ich mal) Gelächter erntest.
-apropos Gelächter: Wär' doch gelacht, wenn wir (oder nur ich?) dich nicht dort hinbekommt, wo du hin willst. Dazu ist es aber dringend notwendig, das du nach unseren (wie meine aussehen hast du ja in diesem Post erfahren) Regeln lernst. Bezeichnen wir Java-Lektüre doch einfach mal als "Strassenschilder".
 
Zuletzt bearbeitet von einem Moderator:

hdi

Top Contributor
"Ich will lernen, mach mir das mal" ist äquivalent zu "Ich liebe <Namen einsetzen>, ...(Rest ist nicht Jugendfrei)".

Andersrum fände ich es passender. "Ich ***, also liebe ich" ist äquivalent zu
"mach mir das mal, weil ich will lernen".

Aber wer weiss vllt bist du ja Hardcore-Katholik ;)
 

hdi

Top Contributor
vllt. meinen wir ja auch das selbe.
Ja tun wir, ich fand nur du hast Ursache und Wirkung verdreht.
Wenn ich sage ich liebe <Namen hier>, deshalb *censored* ich <Namen hier>,
dann finde ich das vollkommen okay ;)
 

diggaa1984

Top Contributor
das "ich" im 2. teil musst du streichen dann passts, respektive durch ein Personalpronomen deiner Wahl ersetzen was nicht dich anspricht ;) .. weil sonst gibts keine analogie zum bekannten zitat :D
 
Zuletzt bearbeitet:

hdi

Top Contributor
das "ich" im 2. teil musst du streichen dann passts, respektive durch ein Personalpronomen deiner Wahl ersetzen was nicht dich anspricht .. weil sonst gibts keine analogie zum bekannten zitat

ööhhh... na gut :bahnhof:
 
S

Spacerat

Gast
So wie es von mir angedacht war müsste nur ein name eingesetzt und zwei Wörter (davon ist eines ein Artikel) geändert werden... Egal... BTT bevors jmnd. merkt...:)
 

Leroy42

Top Contributor
@Developer_X
ok hdi
und wie bitte schön kann ich ein applet als applikation starten,?
mit Spacerats code gehts leider ent

Glaub' es doch endlich mal: Gar nicht!


@Bugmenot
Eh, hdi, was soll das eigentlich dauernd, wirst du dafür bezahlt?
Das "Java ist auch eine Insel" Buch ist zum Java lernen richtig schlecht. Hast du überhaupt mal ein einziges Kapitel darin gelesen oder empfiehlst du das nur vom Hörensagen weiter?
Ich bin mir sicher, dass alle, die Java inzwischen ganz gut können und mal in dieses Buch reingeschaut haben, da nicht widersprechen werden.

Also hier widerspreche ich doch mal ganz eindeutig!
 

FatFire

Bekanntes Mitglied
Und hier widerspreche ich mal ganz eindeutig!

Kannst Du, aber zu Unrecht. Die Frage war ja wie man ein Applet als Applikation startet und das geht ohne Einbindung in HTML oder einen Appletviewer nicht. Die Hybridapplikation wäre die Antwort auf die Frage, wie man ein Programm schreibt, was sich sowohl als Applet als auch als Applikation nutzen lässt. Meine ja nur, wenn wir schon bei diesen Haarspaltereien angekommen sind...

Aber generell muss man doch auch die Frage stellen: wieviel Sinn macht das Ganze? Wieviel Sinn würde es machen Hundekot so zu würzen, dass es wie Szegediner Gulasch schmeckt? Warum sollte man nicht einfach eine Dose Fertigfutter Szegediner Art kaufen und richtiges Fleisch essen, anstatt so einen unappetitlichen Mist zu mampfen? Und obendrein das noch jemandem erklären, der den Unterschied sowieso nicht schmecken würde...:bahnhof:

Ach, und liest eigentlich kein Anfänger mehr das Javabuch? Mir hat das am Anfang am besten geholfen, die Insel auch erst später.

Gruß FatFire
 

Developer_X

Top Contributor
Space Rat, hast du das mit der Eingabeaufforderung gestartet, wenn ja...
kannst du noch einmal, auch wenns blöd ist ich weiß, zeig noch mal den vollen
Code von meinem programm dass du dann richtig umgemacht hast, ein letztes mal,
bitte,
ok?
 
S

Spacerat

Gast
Aber generell muss man doch auch die Frage stellen: wieviel Sinn macht das Ganze?
Kurz gesagt: Egal. Es macht im allgemeinen keinen Sinn sich über Anwendungsgebiete der ein oder anderen Software/Hardware zu Unterhalten. Es wird entwickelt wie es der Kunde haben will. Der Kunde will Quark... Der Kunde bekommt Quark... Warum soll ich mir Gedanken darüber machen, was er damit will. Ok, wenn er Tabellenkalkulation mit Fallout Tactics machen will, bedarf es ein wenig Aufklärung.
Ach, und liest eigentlich kein Anfänger mehr das Javabuch? Mir hat das am Anfang am besten geholfen, die Insel auch erst später.
Doch schon... alle bis auf zwei?! ...würd' ich sagen.
Developer_X hat gesagt.:
Space Rat, hast du das mit der Eingabeaufforderung gestartet, wenn ja...
kannst du noch einmal, auch wenns blöd ist ich weiß, zeig noch mal den vollen
Code von meinem programm dass du dann richtig umgemacht hast, ein letztes mal,
bitte,
ok?
Alles andere als OK... und Durchgefallen:
1a: Selbständigkeit: 0pkt. // Es hat nicht der geringste Versuch stattgefunden dein Problem selbst zu lösen
1b: Copy/Paste: 0pkt. // Der Versuch ist strafbar
1c: Lesen: 0pkt. // Aus der Frage schliesse ich, das du nicht mal meine letzten grossen Beitrag gelesen hast.
1d: Das Leben usw... keine Wertung // kann halt nicht beurteilen, ob du das gelernt hast. Wird sich zeigen, wie oft im Leben du noch gegen eine Wand rennst.
Ob Eingabeaufforderung, Desktop, Eclipse oder Browser, es läuft. Den Code nochmal zu posten, würde
1. wie gesagt gegen meine "Religion" :lol: verstossen und
2. dir nicht weiterhelfen, weil bei dir die bei mir fehlenden Klassen, welche ich durch Dummies ersetzt habe (hätts'te meinen Thread eindringlich gelesen, wüsstest du's), immer noch fehlerhaft sind.
 

FatFire

Bekanntes Mitglied
Spacerat hat gesagt.:
Kurz gesagt: Egal. Es macht im allgemeinen keinen Sinn sich über Anwendungsgebiete der ein oder anderen Software/Hardware zu Unterhalten. Es wird entwickelt wie es der Kunde haben will. Der Kunde will Quark... Der Kunde bekommt Quark... Warum soll ich mir Gedanken darüber machen, was er damit will.
Im normalen Gewerbealltag würde ich Dir natürlich in keinster Weise entsprechen. Manchmal hab ich das Gefühl, dass ein Großteil meiner Arbeit darin besteht, den Kunden dabei zu helfen, sich selbst ins Knie zu schiessen. Eigentlich egal, hauptsache es ist das was sie wollen, ich mache mich dabei nicht strafbar und die Bezahlung stimmt.

Aber bei einem 13-jährigen Java-Noob seh ich da schon irgendwie noch einen gewissen...nennen wir es mal Lehrauftrag im Hintergrund. Und da gehört dann meines Erachtens doch auch eine umfassende Aufklärung über seine Absichten und die daraus wachsenden Konsequenzen rein.;)

Developer_X hat gesagt.:
auch wenns blöd ist ich weiß
Wenn Du es weißt...warum handelst Du dann wider besseren Wissens? Mal abgesehen davon, dass ich allen Punkten, die Spacerat eben genannt hat auch noch einmal ein Ausrufezeichen hinterherschmeissen würde:
Lerne bitte die Grundlagen, denn sonst wirst Du niemals ein vernünftiges Programm schreiben. Es wird sonst immer ein Flickenteppich von unterschiedlichen Programmierern sein, von ein bißchen selbsterbrochenem Leim gehalten. Wenn Du hingegen die Grundlagen wirklich lernst und verinnerlichst wirst Du
1. Gute Software, in einem Stil geschrieben, auf Grundlage eines Konzeptes, schreiben
2. Das gute Gefühl haben: "Das ist alles meins, vom ersten Import bis zum letzten } ist das alles meins"
3. und jederzeit, bei jedem Klick, bei jedem Bug wissen, wo der Fehler liegen muss (naja, wenn Du mit Logging und Debugging dann mal konsequent arbeitest)

Gruß FatFire
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
D Java Applet wird nicht im Browser angezeigt Java Basics - Anfänger-Themen 6
M bestehendes Projekt als Applet speichern Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
A Applet Plot für atan erstellen Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
K JDK installieren displays java applet für MAC Java Basics - Anfänger-Themen 10
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
C Applet Probleme Java Basics - Anfänger-Themen 1
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
G Applet in ein JSP einbinden Java Basics - Anfänger-Themen 1
C Java-Applet Fehler "NoClassDefFoundError"? Java Basics - Anfänger-Themen 1
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
K Applet funz. im Browser nicht Java Basics - Anfänger-Themen 11
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
thet1983 Erste Schritte <param> Tag in Applet Java Basics - Anfänger-Themen 4
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
G Signiertes Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 1
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
K Frage zu Applet Java Basics - Anfänger-Themen 3
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
P Applet Histogramm Java Basics - Anfänger-Themen 6
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
R Java Applet mit Mausklick ansprechen Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
F Problem mit Applet Java Basics - Anfänger-Themen 5
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
S Applet Deployment Java Basics - Anfänger-Themen 2
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
K Applet wird nicht im Browser und Appletviewer angezeigt Java Basics - Anfänger-Themen 5
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
D Applet beenden Java Basics - Anfänger-Themen 7
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
M RSA Applet ohne Cipher Java Basics - Anfänger-Themen 15
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
S Methode in Applet starten Java Basics - Anfänger-Themen 2
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
W Probleme mit Java Applet Java Basics - Anfänger-Themen 5
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
Z Applet startet nicht bei Domain mit Umlaut Java Basics - Anfänger-Themen 2
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6
U Applet Signiert und trotzdem Fehlermeldung Java Basics - Anfänger-Themen 18
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S Applet Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
E Applet wird nicht angezeigt Java Basics - Anfänger-Themen 11
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Import Problem, Applet will nicht Java Basics - Anfänger-Themen 6
M Applet Eclipse Vollbild Java Basics - Anfänger-Themen 3
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
I Java Applet Java Basics - Anfänger-Themen 8
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
L Referenced Libraries korrekt in Java Applet einbinden.. Java Basics - Anfänger-Themen 2
KBJ Java Applet Gästebuch Java Basics - Anfänger-Themen 12
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
U Applet wird nicht angezeigt Java Basics - Anfänger-Themen 2
J J-Applet, Frage Java Basics - Anfänger-Themen 19
J Applet farblich gestalten Java Basics - Anfänger-Themen 5
M Applet lokaler Festplattenzugriff Java Basics - Anfänger-Themen 25
X Applet - Client/Server Java Basics - Anfänger-Themen 2
M Applet ist nur graues Feld Java Basics - Anfänger-Themen 12
O webserver für Applet und php Java Basics - Anfänger-Themen 7
J Fehlermeldung: Applet nicht initialisiert Java Basics - Anfänger-Themen 24
C Java Applet Probleme Java Basics - Anfänger-Themen 4
S Probleme mit Java 3D Tutorial (Applet) Java Basics - Anfänger-Themen 7
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
M Applet + BilderDownload Java Basics - Anfänger-Themen 36
O Applet Wetterticker Java Basics - Anfänger-Themen 17
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Bild in Applet darstellen Java Basics - Anfänger-Themen 6
W Applet funktiniert nur in Eclipse Java Basics - Anfänger-Themen 2
S Erste Schritte Machbarkeit: Applet oder GUI-Applikation? Java Basics - Anfänger-Themen 3
R Daten von Applet an Website Java Basics - Anfänger-Themen 4
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben