A
applet_problem
Gast
Guten tag zusammen,
ich bin gerade dabei für meine firma eine suchfunktion in form eines applets umszusetzten. dieses wird dann in einer mit javascript "generierten" seite eingebunden.
Ich bin prinzipiell mit allem fertig, habe aber einen bug bei dem ich einfach nicht weiterkomme.
Diese tritt nur bei internet explorer auf und äußert sich wie folgt:
wenn ich die seite mit ie9 lade werden zwar sämtliche komponenten angezeigt allerdings lässt sich nicht interagieren, da man nichts anklicken kann. minimiere ich nun den browser und maximiere ihn wieder wird das applet einfach nur als graue fläche dargstellt. klicke ich dann erneut auf den link funktioniert aber das applet nach laden der seite komischerweise ganz normal.
was auch äußerst komisch ist, ist die tatsache, dass ich, wenn ich im java control panel auf console anzeigen eingetsellt habe, das eben geschilderte problem gar nicht habe.
ich habe schon in der firma auf älteren browsern und auch anderen betriebssystemen (d.h. auf xp statt win7) versucht das ganze auszuführen ==> selbes ergebnis.
an den browser einstellungen kann es auch nicht liegen, da ich schon überprüft habe ob java aktiviert wurde oder nicht. in der gesamten firma ist mindestens jre v.6 installiert, d.h. es lässt sich auch ausschließen, dass es an einer veralteten java version liegt.
schlussfolgerung ==> liegt definitiv an meinem code.
da ich aber auch nach tagelangem googeln nichts dazu gefunden habe dachte ich mir ich wende mich an euch.
hier kommt nun noch der code der lebenszyklus-methoden des applets. den rest darf ich leider nicht in ein öffentliches forum stellen.
ich hoffe auf eure hilfe! ich selbst komme einfach nicht mehr weiter!
vielen dank schonmal und viele grüße
steffen
p.s. seid bitte nachsichtig mit mir falls der code teilweise etwas "ungewöhnlich" aussieht ^^ is mein erstes java applet ever
ich bin gerade dabei für meine firma eine suchfunktion in form eines applets umszusetzten. dieses wird dann in einer mit javascript "generierten" seite eingebunden.
Ich bin prinzipiell mit allem fertig, habe aber einen bug bei dem ich einfach nicht weiterkomme.
Diese tritt nur bei internet explorer auf und äußert sich wie folgt:
wenn ich die seite mit ie9 lade werden zwar sämtliche komponenten angezeigt allerdings lässt sich nicht interagieren, da man nichts anklicken kann. minimiere ich nun den browser und maximiere ihn wieder wird das applet einfach nur als graue fläche dargstellt. klicke ich dann erneut auf den link funktioniert aber das applet nach laden der seite komischerweise ganz normal.
was auch äußerst komisch ist, ist die tatsache, dass ich, wenn ich im java control panel auf console anzeigen eingetsellt habe, das eben geschilderte problem gar nicht habe.
ich habe schon in der firma auf älteren browsern und auch anderen betriebssystemen (d.h. auf xp statt win7) versucht das ganze auszuführen ==> selbes ergebnis.
an den browser einstellungen kann es auch nicht liegen, da ich schon überprüft habe ob java aktiviert wurde oder nicht. in der gesamten firma ist mindestens jre v.6 installiert, d.h. es lässt sich auch ausschließen, dass es an einer veralteten java version liegt.
schlussfolgerung ==> liegt definitiv an meinem code.
da ich aber auch nach tagelangem googeln nichts dazu gefunden habe dachte ich mir ich wende mich an euch.
hier kommt nun noch der code der lebenszyklus-methoden des applets. den rest darf ich leider nicht in ein öffentliches forum stellen.
Java:
@Override
public void init(){
System.out.println("init()");
setNativeLookAndFeel();
Dimension buttonSize = new Dimension(80,20);//größe für buttons als dimension definieren
//erstellen des input
input = new JTextField("article number", 8);
input.addKeyListener(this);
input.addFocusListener(this);
input.setForeground(Color.GRAY);
//erstellen des searchbuttons
search_start = new JButton("search");
search_start.setActionCommand("search");
search_start.setEnabled(true);
search_start.addActionListener(this);
search_start.setPreferredSize(buttonSize);
//erstellen des reset buttons
search_reset = new JButton("reset");
search_reset.setActionCommand("reset");
search_reset.setEnabled(false);
search_reset.addActionListener(this);
search_reset.setPreferredSize(buttonSize);
//erstellen der suchleiste
search_progress = new colorBar();
search_progress.setValue(0);
search_progress.setStringPainted(true);
search_progress.setPreferredSize(new Dimension(860, 25));
//erstellen des output bereichs mit hyperlinklistener
output = new JEditorPane();
output.setEditable(false);
output.setContentType("text/html");
output.addHyperlinkListener(new HyperlinkListener(){
public void hyperlinkUpdate(HyperlinkEvent event){
if(event.getEventType() == HyperlinkEvent.EventType.ACTIVATED){
System.out.println(event.getURL());
String pfad = new String(event.getURL().toString());
if (http == false){
pfad = pfad.substring(6);
pfad = pfad.replace('/','\\');
System.out.println("Without http! path: " + pfad);
try{
String path_reader = null;
File f = new File("C:/Program Files (x86)");
if (f.exists()){//FALL ADOBE IN C:/Program Files (x86)
f = new File("C:/Program Files (x86)/Adobe/");
path_reader = "C:/Program Files (x86)/Adobe/";
if (f.exists()){
String [] adobe_files = f.list();
for (int i=0; i<adobe_files.length; i++){
if (adobe_files[i].substring(0,6).equals("Reader")){
path_reader += adobe_files[i]+ "/Reader/acrord32.exe";
System.out.println(path_reader);
i = adobe_files.length;
}
}
Runtime.getRuntime().exec(path_reader + " /n /A\"search=" + suchbegriff + "\" \"" + pfad + "\""); //öffnet Adobe reader mit automatisch generierten parametern
}
}
else{//FALL ADOBE IN C:/Programme/
f = new File("C:/Programme/");
if (f.exists()){
f = new File("C:/Programme/Adobe/");
path_reader = "C:/Programme/Adobe/";
if (f.exists()){
String [] adobe_files = f.list();
for (int i=0; i<adobe_files.length; i++){
if (adobe_files[i].substring(0,6).equals("Reader")){
path_reader += adobe_files[i]+ "/Reader/acrord32.exe";
System.out.println(path_reader);
i = adobe_files.length;
}
}
Runtime.getRuntime().exec(path_reader + " /n /A\"search=" + suchbegriff + "\" \"" + pfad + "\"");
}
}
}
}
catch(Exception e){
System.err.println("THE SYSTEM DOESN'T ALLOW TO READ ITS PROPERTIES! " +e);
}
}
else{
pfad = pfad.replace('\\', '/');
System.out.println("WITH HTTP! path: " + pfad);
try {
Runtime.getRuntime().exec("rundll32.exe url.dll,FileProtocolHandler " + pfad + "#search=\"" + suchbegriff + "\"");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
});
//hinzufügen der menu components zum menu
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 6;
c.weightx = 0.05;
c.weighty = 0.3;
c.gridx = 0;
c.gridy = 0;
menu.add(search_start,c);
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 6;
c.weightx = 0.05;
c.weighty = 0.3;
c.gridx = 1;
c.gridy = 0;
menu.add(search_reset, c);
c.fill = GridBagConstraints.HORIZONTAL;
c.ipady = 1;
c.weightx = 0.9;
c.weighty = 0.3;
c.gridx = 2;
c.gridy = 0;
c.gridwidth = 4;
menu.add(input, c);
//hinzufügen der progress bar
progressbar.add(search_progress);
//erstellen der scrollfunktion
scroll = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scroll.setViewportView(output);
scroll.createVerticalScrollBar();
scroll.setPreferredSize(new Dimension(getWidth(), 525));
//hinzufügen aller componenten auf einzelne panes und dann zum applet / auf pane von applet
top.add(menu);
top.add(progressbar);
frame.add(top, BorderLayout.NORTH);
frame.add(scroll, BorderLayout.SOUTH);
this.getContentPane().add(frame);
}
@Override
public void start(){
System.out.println("start()");
repaint();
}
@Override
public void stop(){
System.out.println("stop()");
}
@Override
public void destroy(){//wird beim verlassen als eine art kill methode ausgeführt
System.out.println("destroy()");
Runtime.getRuntime().gc();
Runtime.getRuntime().exit(0);
}
ich hoffe auf eure hilfe! ich selbst komme einfach nicht mehr weiter!
vielen dank schonmal und viele grüße
steffen
p.s. seid bitte nachsichtig mit mir falls der code teilweise etwas "ungewöhnlich" aussieht ^^ is mein erstes java applet ever