# .nur noch einen hyperLINK einbauen



## chrizzz (27. Okt 2004)

Hallo,
ich versuchen ein kleines Applet zu erstellen, welches, wenn
Java installiert und aktiv ist, einen Text ausgibt (so weit bin ich schon)
und dieser Text soll zu einer weiteren Seite führen wen man diesen anklickt.
Also einen simplem textlink einbauen.



```
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

public class test extends Applet{
 public void paint(Graphics g){
  setForeground(new Color (0,240,5));
  setBackground(new Color (238,238,238));
  g.drawString("GLIGST DU HIER!",1,15);
 }
}
```

So.... wie bekomme ich nun den Text zu einem einfachen LINK / Hyperlink?

Bitte mit Code da ich der absolute JAVA Profi 
Vielen Dank!!!


----------



## Sky (27. Okt 2004)

GLIGST DU HIER!


----------



## dotlens (28. Okt 2004)

es gibt auch ne klasse "BrowserLauncher" die das file dann mit dem Standardbrwoser öffnet. hab ich schon oft gebraucht


----------



## Sky (28. Okt 2004)

dotlens hat gesagt.:
			
		

> es gibt auch ne klasse "BrowserLauncher" die das file dann mit dem Standardbrwoser öffnet. hab ich schon oft gebraucht



Die ist aber nicht im Standard-SDK dabei, oder??


----------



## dotlens (28. Okt 2004)

nö, di hab ich irgendwo runtergeladen, ist gratis. weiss aber nicht mehr vo wo...


----------



## Sky (28. Okt 2004)

Hab' ich gerade auch gesehen. Die gibt's bei 'sourceforge'. Ich habe mir auch gleich mal den Quellcode angeschaut und stelle mir die Frage, warum man diese Klasse einbinden sollte!? 

Über den AppletContext kann man genau so elegant ein neues Browser-Fenster öffnen.


----------



## dotlens (28. Okt 2004)

kenne mich in applets nicht so gut aus, hab es für meine Tools gebraucht...
schau mir gleich mal den appletContext an


----------



## Stefan1200 (28. Okt 2004)

sky80 hat gesagt.:
			
		

> Hab' ich gerade auch gesehen. Die gibt's bei 'sourceforge'. Ich habe mir auch gleich mal den Quellcode angeschaut und stelle mir die Frage, warum man diese Klasse einbinden sollte!?



Naja, für Applets wohl auch kaum zu gebrauchen.
Für Java Applikationen vielleicht interessanter.

Btw. gibt es unter Linux auch sowas, wie unter Windows start oder unter MacOS X open?


----------



## chrizz (28. Okt 2004)

Hey Danke für die Browser Launcher Geschichten die sind in diesem Fall nicht relevant.
*Das was ich brauche ist folgendes*:

Ich habe eine Java Anwendung im Web. 
Diese wird über ein Pop UP Fenster gestartet. 
Wenn das Popup Fenster geöffnet wird erscheint dort eine 
Hinweisseite  (Hey man..brauchst du JAVA man.. nix JAVA nix glotzen ode rnix JAVA
du java installieren und glicken hier) mit dem Link zur eigentlichen Anwendung.

So nun möchte ich es so haben, dass auf der Hinweisseite einen JAVA Applet  
einen Text ausgibt  z.B.: "Java ist da, hier gehts weiter ...".
Dieser Text soll auch gleich ein HYPERLINK zur Folgeseite sein, in der dann die 
eigentliche Geschichte losgeht (Im gleichen Fenster, im gleichen Frame (ist aber keines) 
Ein stink normaler Hyperlink so wie er uns Tag täglich im Netz begegnet,ok.

*Schafft Ihr das?*
Bitte mit Quellcode da ich erst seit  gestern Java probiere und noch nicht weiß wo links und rechts ist,ok.

Der Link zur Doku war gut, nur die Frage ist  WIE  binde ich dies nun in meinem QC ein?
Zudem fehlt da noch ein Mouse Listener so weit ich weiß.. oder täusche ich mich da nun??

Also gebt Euch einen Ruck und tut mir etwas gutes und schreibt mir hier den QC rein 
damit ich es problemlos einbinden kann und mein Tag wieder OK ist.

Ist das zu viel verlagt oder bin ich im falschen Forum???

Danke!


----------



## dotlens (28. Okt 2004)

chrizz hat gesagt.:
			
		

> Ist das zu viel verlagt oder bin ich im falschen Forum???



klingt ja so als seien wir verpflichted dir zu helfen :S

ich mache deine aufgaben nicht, und wenn du noch nicht java kannst solltest du vieleicht mit etwas kleinerem beginnen. wenn du immer bloss QC reinkopierst lernst du nichts....


----------



## Sky (28. Okt 2004)

Außerdem verstehe ich dein Problem nicht. Warum musst Du von einem Applet aus eine Seite mit einem anderem Applet aufrufen? 

Wenn der Kerl am Monitor Java installiert hat, dann läuft dein Applet doch ganz von alleine (auch ohne Umleitung)! Und wenn Java nicht installiert ist, so kannst Du ihm einfach auf deiner HTML-Seite sagen, er soll installieren!


----------



## chrizz (28. Okt 2004)

uuuupssss.... sorry ich bin vielleicht schon zu alt aber so weit ich weiß ist 
der Sinn und Zweck eines Forums anderen zu helfen und keine dummen 
Kommentare abzugeben. Oder sich über emotionale Geschichten zu unterhalten,oder????


Du solltest vielleicht etwas vorsichtig sein, wenn Du jemandem den du nicht kennst Ratschläge 
erteilst von wegen schwer und so... das kann schnell nach hinten losgehen, nicht wahr.

Ich brauche konkrete Hilfe und kein möchtegern schlaues Geschwafel von Teenagern 
von wegen SC kopieren und nichts dabei lernen, ok.

NUR UND AUSSCHLIE?LICH durch die verwendung betrachtung und Analyse fremden QC ist man in der Lage 
etwas zu verstehen, macht sich Gedanken warum so und nicht anders.... aber das hat sich anscheinend irgendwie geändert heute geht es daraum aus dem englischen übersetzte Anleitungen von Seite 1 bis 1000 durchzuselen 
und nicht mal in der Lage sein so etwas simples lösen zu können. jaaaa mache weiter mit deinen tollen APPLETS mit wackeltext und schlag mich tot... *lol* 

Wenn Deine Fähigkeiten in dieer Angelegenheit überfordert sind, dann sei doch so nett und schreibe hier 
keinen Mist hinein, der mit der Sachen ansich nichts zu tun hat. _ Danke!_

Wer nichst zu sagen hat der hält das ....  heißt es doch so schön.

Nichts für ungut, aber ich dacht ich finde hier Leute vom alten Schlag die sich mit JAVA etwas auskennen.


----------



## chrizz (28. Okt 2004)

Ja aber es gibt auf der Welt noch Menschen die meinen dass es am Webdesigner liegt 
wenn was nicht funktioniert und nich an der Politik mancher Firmen....
und für Erklärungen fehlt ihnen der IQ.

Auf der Folgeseite ist vom Layout her kein PLatz um irgendwelche Hinweise zu plazieren
(Ist ja ein PopUp Fensterle) , daher wird es in der Eingangsseite gemacht. 

Momentan hat jeder die Möglichkeit auch auf die Anwendungsseite durch einen HTML Link zu gelagen, 
das soll aber in Zukunft nur möglich sein, wenn JAVA aktiv ist (also über den link 
der vom Applet ausgegeben wurde) und dann gibts keine Probleme.

Verstehst du mich??

Ich brauche eine Lösung für genau dieses Problem, ja nicht Diskussionen darüber wie man 
es anders hätte lösen können, glaube mir.

cu


----------



## Stefan1200 (28. Okt 2004)

Ich hoffe mal nicht, das diese Disku hier in einem Streit endet...

Das ein Forum zum Helfen da ist, da sind wir uns auch einig. Aber in einem Programmiererforum gibt es immer das Problem, das Leute ankommen mit folgenden Satz: "Ich habe keine Ahnung, aber ich brauche das und das. Muss morgen fertig sein, macht hinne..."
Diesen Satz hören wir leider sehr oft. Und Sorry...aber ich habe weiß Gott was besseres zu tun, als in meiner Freizeit für lau anderen ein komplettes Programm/Applet zu programmieren, wovon ich gar nichts habe.

*Nun zu deinem Problem:*
Wenn ich daran denke, suche ich heute abend zuhause ein Source raus, den ich selbst mal gebraucht habe und poste den morgen mal hier. Das wird zwar keine Vollständige Lösung für dein Problem, aber eine Lösung, auf den du aufbauen kannst.

Wenn du dazu dann Fragen hast, nachdem du dich damit auseinander gesetzt hast, helfen wir dir sicher weiter.


----------



## chrizz (28. Okt 2004)

Hi Stefan,
danke. Wenn das zu viel Aufwand macht, dann streichen wir das halt.


Ich dachte dass dies ein wenig einfacher mit Java geht, und dass man es als Profi schon mal 
aus dem Ärmel zaubern könnte, doch es scheint  dass es aufwendiger ist als gedacht (schade).


Wenn Du dazu kommst, bin ich sehr dankbar. Ansonsten lasse ich es so wie es ist.
Mir wäre auch sofort eine Umleitung zu einer URL ohne ausgabe oder sonstoges helfen,
falls das einfacher ist.   a la Java*Script*:   
	
	
	
	





```
window.location.href.replace="www.schaunurnetnach.de"
```


Also ein Applet mit einer Umleitung. Ist das einfacher zu realisieren?
Einfach ne sofortige Umleitung ohne Textausgabe.


```
public void showDocument(URL url, String target);
```

Ich kriege da Fehlermeldungen , wie sollte es denn richtig aussehen?


Vielen Dank noch mal!

PS: Bin halt auch im Stress


----------



## dotlens (28. Okt 2004)

```
public void showDocument(new URL("http://www.google.ch"), "_blank");
```
anstatt _blank kannst du self schreien, dann wird es im selben Fenster geöffnet


----------



## Stefan1200 (28. Okt 2004)

chrizz hat gesagt.:
			
		

> Wenn Du dazu kommst, bin ich sehr dankbar. Ansonsten lasse ich es so wie es ist.
> Mir wäre auch sofort eine Umleitung zu einer URL ohne ausgabe oder sonstoges helfen,
> falls das einfacher ist.



Das ist easy, dafür brauchst du nur die AppletContext Klasse für, die ich auch in meiner Methode verwendet habe ( http://java.sun.com/j2se/1.4.2/docs/api/java/applet/AppletContext.html#showDocument(java.net.URL) )
Sprich wenn das Applet gestartet wurde, öffnest du eine neue Seite.
Wie gesagt, wenn ich daran denke, poste ich morgen die paar Zeilen dafür.


----------



## chrizz (28. Okt 2004)

Hey danke, 
kann es sein, dass da was fehlt?? Irgend ein Import von ner Klasse oder so was?


Also ne sofortige Umleitung würde wie folgt aussehen, oder?


```
import java.awt.*;
import java.applet.Applet;
import java.net.URL;

public class test extends Applet{
  public void showDocument(new URL("http://www.java-forum.org"), "_self");
}
```

Ich bekomme da 2 Fehlermeldungen:

```
F:\test.java:6: illegal start of type
  public void showDocument(new URL("http://www.java-forum.org"), "_self");
                           ^
F:\test.java:6: <identifier> expected
  public void showDocument(new URL("http://www.java-forum.org"), "_self");
                                                                         ^
```
Ich bin total begabt ich weiß 

Danke Leute wo ost da jetzt der Wurm drin??


----------



## Sky (28. Okt 2004)

Das ganze muss entweder im Konstruktor oder in einer Methode geschehen:


```
import java.awt.*; 
import java.applet.Applet; 
import java.net.URL; 

public class test extends Applet{ 
  public test() {
    this.getAppletContext().showDocument(new URL("http://www.java-forum.org"), "_self"); 
  }
}
```

Ganz nebenbei: Klassennamen sollte man gross schreiben ;-)


----------



## chrizz (28. Okt 2004)

Hallo Sky80,
danke für die Geburtshilfe  
Bei mir kommt immer noch eine Fehlermeldung beim compilieren bei :
new URL und zwar: _unreported exeption java.net.MalformeURLException; must be caught or declared to be thrown _

-> Als nicht werfen ohne es vorher aufzufangen oder wie?
Habe folgenden SC verwendet auf einer MS XP Pro SP2 SDK 1_4 Maschine:


```
import java.awt.*;
import java.applet.Applet;
import java.net.URL;

public class test extends Applet{
  public test() {
    this.getAppletContext().showDocument(new URL("http://www.java-forum.org"), "_self");
  }
}
```

Wo soll denn url angemeldet werden?


PS: Habe alles klein da es nur zu Testzwecken sein soll und ich davon ausgegangen bin, dass der SC recht 
überschaubar bleibt, aber dennoch danke!


----------



## Sky (28. Okt 2004)

```
import java.awt.*; 
import java.applet.Applet; 
import java.net.URL; 

public class test extends Applet{ 
  public test() { 
    try {
      this.getAppletContext().showDocument(new URL("http://www.java-forum.org"), "_self");
    } catch (MalformedURLException ex) {
      ex.printStackTrace();
    }
  } 
}
```


----------



## chrizz (28. Okt 2004)

hmmmm...  ähhh ich will ja niemanden shocken, aber ich bekomme da ne Fehlermeldung:

JAVA 9 : cannot resolve symbol
> catch (MalformedURLExeption
_______^


Was ist denn jetzt kaputt???

PS: Wenn ich gewusst hätte, das Euer Java so kompliziert ist, wäre ich heut im Bett geblieben 

Trotzdem, vielen Dank für die Hilfe Jungs!


----------



## Illuvatar (28. Okt 2004)

Das heißt MalformedURLException.
Außerdem ist das hoffentlich net die ganze Zeile.
Außerdem bringt der Code so nix, weil test nie aufgerufen wird.


----------



## Sky (29. Okt 2004)

Also, bei mir läuft der Code, wenn ich ihn 1zu1 in die Klasse test.java schreibe und kompiliere!



			
				Illuvatar hat gesagt.:
			
		

> Außerdem bringt der Code so nix, weil test nie aufgerufen wird.


Warum wird denn der Konstruktor nicht aufgerufen?? 

Ich hatte zwar auch schon drauf hingewiesen, dass man Klassen der Lesbarkeit wegen gross schreiben sollte und ich bekam die Antwort:


			
				chrizz hat gesagt.:
			
		

> PS: Habe alles klein da es nur zu Testzwecken sein soll und ich davon ausgegangen bin, dass der SC recht
> überschaubar bleibt, aber dennoch danke!


----------



## Stefan1200 (29. Okt 2004)

So, hier nun mein einfaches Beispiel:


```
import java.applet.*;
import java.net.*;

public class AppletOpenURL extends Applet
{
	public void init()
	{
		openURL("http://www.stefan1200.de", "_blank");
	}

	/**
	 * Open an url
	 *
	 * @param url - The url to open as String
	 * @param target - HTML target is needed here like _blank _top _self
	 */
	private void openURL(String url, String target)
	{
		try
		{
			getAppletContext().showDocument(new URL(url), target);
		}
		catch (MalformedURLException e)
		{
		}
	}
}
```


Und die HTML Datei zum Anzeigen des Applets.


```
<HTML>
<HEAD>
<TITLE>Applet Test Page</TITLE>
</HEAD>
<BODY>
<APPLET CODE="AppletOpenURL.class" NAME="AppletOpenURL" WIDTH="1" HEIGHT="1" ALIGN="middle" 
alt="Sie böser Junge, sie haben kein Java installiert...sofort hier her: http://www.java.com">
</APPLET>
</BODY>
</HTML>
```


----------



## Illuvatar (29. Okt 2004)

sky80 hat gesagt.:
			
		

> Also, bei mir läuft der Code, wenn ich ihn 1zu1 in die Klasse test.java schreibe und kompiliere!
> 
> 
> 
> ...



OOps sry natürlich wird der Konstruktor aufgerufen. Ich hab mich wegen dem kleingeschriebenen Klassennamen eben bissle verlesen 
Trotzdem is Stefan1200s Lösung besser, denke ich.


----------



## Sky (29. Okt 2004)

Illuvatar hat gesagt.:
			
		

> Trotzdem is Stefan1200s Lösung besser, denke ich.



Wieso "besser"? Es geschieht doch genau das gleiche... In der Softwareentwicklung gibt es m.E. nicht immer eine "bessere" oder "schlechtere" Lösung. Manchmal sind (auch komplett) verschiedene Lösungen einfach "gleich gut" (oder schlecht).


----------



## Illuvatar (29. Okt 2004)

Nun, weil so etwas bei einem Applet imho nicht in den Konstruktor gehört, weil es dafür eben init und start gibt, und weil er das Aufrufen an eine andere Methode delegiert, was den Code wiederverwendbarer und einfacher zu Lesen macht und die Kapselung erhöht.

Vom Effekt her isses natürlich gleich.


----------



## Sky (29. Okt 2004)

Im allgemeinem gebe ich Dir vollkommen recht. Nur in diesem besonderem Fall, wo das Applet einfach mal nix anderes machen soll ist es ziemlich egal ;-)


----------



## Illuvatar (29. Okt 2004)

Dann können wir die Diskussion ja beenden, das sollte ja auch nur eine winzige Randbemerkung sein.


----------

