JLayeredPane : Applet - Application

Status
Nicht offen für weitere Antworten.

max60watt

Mitglied
Hallo,
aus einem Java-Buch habe ich den unten, etwas vereinfachten, Code eines Applet.
Es soll in einem JLayeredPane auf einem Hintergrundbild ein JLabel mit der Maus verschoben werden.
In dem Applet funktioniert das wunderbar.
Dann habe ich das Applet zu einer Applikation umgeschrieben. Leider ist weder von dem Hintergrundbild noch von dem Label etwas zu sehen.

Code des Applet:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.image.*;

public class Test extends JApplet{
  public void init() {
    setContentPane(new CustomContentPane());
  }
}
//=============================================================================================================================================================
class CustomContentPane extends JLayeredPane {
  private ImageIcon rain = new ImageIcon(createImage());
  private JLabel label = new JLabel("LABEL",JLabel.CENTER);

  public CustomContentPane() {
    Dragger listener = new Dragger();
    
    label.setCursor(new Cursor(Cursor.MOVE_CURSOR));
    label.setBorder(new LineBorder(Color.RED));
    label.addMouseMotionListener(listener);
    label.addMouseListener(listener);
    label.setBounds(0,0,50,20);
    add(label);
    
    setLayer(label,JLayeredPane.DRAG_LAYER.intValue());
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void paintComponent(Graphics g) {
    rain.paintIcon(this,g,0,0);
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public BufferedImage createImage(){
  BufferedImage bi = new BufferedImage(210, 210, BufferedImage.TYPE_3BYTE_BGR);
  Graphics g = bi.getGraphics();
  g.setColor(Color.WHITE);
  g.fillRect(0,0,210,210);
  g.setColor(Color.GREEN);
  
  for(int i = 10;i<200;i+=10)
    g.drawArc(105- i/2,105- i/2,i,i,0,360);
  return bi;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
}
//=============================================================================================================================================================
class Dragger extends MouseAdapter implements MouseMotionListener {
  Point press = new Point();
  boolean dragging = false;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mousePressed(MouseEvent event) {
    press.x = event.getX();
    press.y = event.getY();
    dragging = true;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public boolean isDragging() {
    return dragging;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseReleased(MouseEvent event) {
    dragging = false;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseClicked(MouseEvent event) {
    dragging = false;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseMoved(MouseEvent event) {
    // don't care
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseDragged(MouseEvent event) {
    Component c = (Component)event.getSource();

    if(dragging) {
      Point loc = c.getLocation();
      Point pt  = new Point();
      pt.x = event.getX() + loc.x - press.x;
      pt.y = event.getY() + loc.y - press.y;
      c.setLocation(pt.x, pt.y);
      c.getParent().repaint();
    }
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
}

Dazu noch die HTML-Datei für den Appleviewer

Code:
<title>Test</title>
<hr>
<applet code="Test.class" width=210 height=210>
</applet>
<hr>

Jetzt den Code der Application

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.image.*;

public class Test extends JFrame{
  public void Test() {
    setContentPane(new CustomContentPane());
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public static void main(String args[])
  {
  Test app = new Test();
  app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  app.setBounds(100,100,210,210);
  app.setVisible(true);
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
}
//=============================================================================================================================================================
class CustomContentPane extends JLayeredPane {
  private ImageIcon rain = new ImageIcon(createImage());
  private JLabel label = new JLabel("LABEL",JLabel.CENTER);

  public CustomContentPane() {
    Dragger listener = new Dragger();
    
    label.setCursor(new Cursor(Cursor.MOVE_CURSOR));
    label.setBorder(new LineBorder(Color.RED));
    label.addMouseMotionListener(listener);
    label.addMouseListener(listener);
    label.setBounds(0,0,50,20);
    add(label);
    
    setLayer(label,JLayeredPane.DRAG_LAYER.intValue());
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void paintComponent(Graphics g) {
    rain.paintIcon(this,g,0,0);
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public BufferedImage createImage(){
  BufferedImage bi = new BufferedImage(210, 210, BufferedImage.TYPE_3BYTE_BGR);
  Graphics g = bi.getGraphics();
  g.setColor(Color.WHITE);
  g.fillRect(0,0,210,210);
  g.setColor(Color.GREEN);
  
  for(int i = 10;i<200;i+=10)
    g.drawArc(105- i/2,105- i/2,i,i,0,360);
  return bi;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
}
//=============================================================================================================================================================
class Dragger extends MouseAdapter implements MouseMotionListener {
  Point press = new Point();
  boolean dragging = false;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mousePressed(MouseEvent event) {
    press.x = event.getX();
    press.y = event.getY();
    dragging = true;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public boolean isDragging() {
    return dragging;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseReleased(MouseEvent event) {
    dragging = false;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseClicked(MouseEvent event) {
    dragging = false;
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseMoved(MouseEvent event) {
    // don't care
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
  public void mouseDragged(MouseEvent event) {
    Component c = (Component)event.getSource();

    if(dragging) {
      Point loc = c.getLocation();
      Point pt  = new Point();
      pt.x = event.getX() + loc.x - press.x;
      pt.y = event.getY() + loc.y - press.y;
      c.setLocation(pt.x, pt.y);
      c.getParent().repaint();
    }
  }
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
}

Kann mir jemand helfen?.
Ich benutze JAVA in der Version 1.4.2_09 auf einem i-386 Debian-Sarge System
 

André Uhres

Top Contributor
Code:
public class Test extends JFrame{ 
  public Test() { //void muss weg! (=Konstruktor)
...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Probleme mit MouseWheelListener und JLayeredPane in Applet AWT, Swing, JavaFX & SWT 2
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
S Swing JLayeredPane Anordnung funktioniert nicht AWT, Swing, JavaFX & SWT 2
S Swing JLayeredPane "Phänomen"? AWT, Swing, JavaFX & SWT 7
E Swing JPanel in JLayeredPane animieren AWT, Swing, JavaFX & SWT 7
R Swing Animation mit JLayeredPane? AWT, Swing, JavaFX & SWT 8
T JLayeredPane in JScrollBox AWT, Swing, JavaFX & SWT 2
GUI-Programmer Swing Problem mit JLayeredPane AWT, Swing, JavaFX & SWT 2
M JLayeredPane mit JPanel im Vordergrund, Hintergrundelemente sperren AWT, Swing, JavaFX & SWT 7
G JPanel in JLayeredPane AWT, Swing, JavaFX & SWT 8
G Swing JLayeredPane Schach AWT, Swing, JavaFX & SWT 7
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
R JLayeredPane - JPanel mit variabler Form AWT, Swing, JavaFX & SWT 4
J Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund AWT, Swing, JavaFX & SWT 5
R JLayeredPane - Drag&Drop - mouseDragged AWT, Swing, JavaFX & SWT 6
J SWING Fenster mit mehreren JPanels (dank JLayeredPane) AWT, Swing, JavaFX & SWT 19
R Swing JLayeredPane - Wie JScrollPane einbauen? AWT, Swing, JavaFX & SWT 17
R Swing JLayeredPane - Drag&Drop Positionen vertauschen AWT, Swing, JavaFX & SWT 3
H Button auf Bild/ JLayeredPane in Jpanel AWT, Swing, JavaFX & SWT 15
G JLayeredPane moveToFront funktioniert nicht AWT, Swing, JavaFX & SWT 15
D jLayeredPane Ebenen mit dynamischer Größe AWT, Swing, JavaFX & SWT 2
B Ärger mit JLayeredPane :-( AWT, Swing, JavaFX & SWT 5
S JLayeredPane AWT, Swing, JavaFX & SWT 16
V JLayeredPane wird nur 1x bezeichnet AWT, Swing, JavaFX & SWT 12
shiny_hair JLayeredPane - Wie funktioniert das mit den Layern? AWT, Swing, JavaFX & SWT 2
T JLayeredPane Problem - AWT und SWING Komponente AWT, Swing, JavaFX & SWT 6
M Scrollbare JLayeredPane AWT, Swing, JavaFX & SWT 2
G Grafikformat für AWT-Applet? AWT, Swing, JavaFX & SWT 0
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
T Applet Applet in JFrame einbinden AWT, Swing, JavaFX & SWT 8
C Applet Applet funktioniert in Eclipse aber nicht in Browser AWT, Swing, JavaFX & SWT 1
S Sandboxed Applet weiterhin moeglich..? AWT, Swing, JavaFX & SWT 5
S Oracle's neue Sicherheitseinstellungen zerstoeren mein Applet. Was tun? AWT, Swing, JavaFX & SWT 3
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
U CardLayout im Applet AWT, Swing, JavaFX & SWT 4
J Applet Applet Vererbung/Überladen AWT, Swing, JavaFX & SWT 5
G JavaFX mit ANT deployen als Applet AWT, Swing, JavaFX & SWT 3
S Applet Application 2 applet AWT, Swing, JavaFX & SWT 3
T Applet JTattoo Look and Feel AWT, Swing, JavaFX & SWT 5
T Signiertes Applet Urheber angeben AWT, Swing, JavaFX & SWT 5
S Applet Repaint AWT, Swing, JavaFX & SWT 3
B Java-Applet Parameter übergabe? AWT, Swing, JavaFX & SWT 2
M Applet mit Bildern AWT, Swing, JavaFX & SWT 2
T Applet in JSP einbinden AWT, Swing, JavaFX & SWT 4
R MouseEvent.getX() liefert in Applet Screen-Koordinate AWT, Swing, JavaFX & SWT 2
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
A Applet Applet vom Web-Server aus aufrufen AWT, Swing, JavaFX & SWT 11
A Applet Applet startet nicht AWT, Swing, JavaFX & SWT 2
P Tatsächliche Größe für Applet AWT, Swing, JavaFX & SWT 3
B Applet Aus Applet signiertes jar mit externen libs erstellen AWT, Swing, JavaFX & SWT 9
S JDialog über Applet AWT, Swing, JavaFX & SWT 3
M Warum funktioniert mein Applet nicht? AWT, Swing, JavaFX & SWT 6
D Applet hintergrund wird nicht weiß AWT, Swing, JavaFX & SWT 2
R Applet JavaScript Methodenaufruf AWT, Swing, JavaFX & SWT 2
A Applet Animiertes gif in awt applet anzeigen AWT, Swing, JavaFX & SWT 11
X Applet Java Applet Datei Ausführung AWT, Swing, JavaFX & SWT 9
A Applet .gif in applet Image nicht animiert angezeigt AWT, Swing, JavaFX & SWT 4
A Applet Applet aus Code neu starten AWT, Swing, JavaFX & SWT 2
K Applet erkennt keine Frameverkleinerung AWT, Swing, JavaFX & SWT 5
S Applet funktioniert nach Browserreload nicht richtig AWT, Swing, JavaFX & SWT 2
T Applet Applet vs. WebStart AWT, Swing, JavaFX & SWT 4
S Applet starten AWT, Swing, JavaFX & SWT 4
K JTable im Browser nicht zu sehen - Applet AWT, Swing, JavaFX & SWT 6
B Applet Button oder Toolbar in einem Applet AWT, Swing, JavaFX & SWT 5
V Applet mit Bildbearbeitung AWT, Swing, JavaFX & SWT 3
V Applet Applet starten schlägt fehl AWT, Swing, JavaFX & SWT 2
W Button in Applet AWT, Swing, JavaFX & SWT 9
kniffel GUI-Applet JTable füllt Hintergrund völlig aus AWT, Swing, JavaFX & SWT 4
J Applet Java-Applet friert mit Firefox ein AWT, Swing, JavaFX & SWT 8
J Applet Tetris flackert AWT, Swing, JavaFX & SWT 9
F Applet Applet starten...(+Timer?) AWT, Swing, JavaFX & SWT 12
S [JAVA] JFrame in Applet/JApplet AWT, Swing, JavaFX & SWT 14
D Applet Applet das auf fremden Libraries basiert einbinden? AWT, Swing, JavaFX & SWT 20
M Applet wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
E Applet Neuen Tab aus Applet öffnen AWT, Swing, JavaFX & SWT 3
G Applet, Link ermitteln, dem der Benutzer gefolgt ist AWT, Swing, JavaFX & SWT 2
K Email versenden ueber Applet AWT, Swing, JavaFX & SWT 11
S Applet in JFrame einbinden AWT, Swing, JavaFX & SWT 6
S Button aktivieren (Applet) AWT, Swing, JavaFX & SWT 2
3 Applet Applet zeigt nur weiße Fläche AWT, Swing, JavaFX & SWT 15
B 2 Probleme (JFrame & Applet) AWT, Swing, JavaFX & SWT 7
A Programmieren einer Agenda mit einer Liste (als Applet und .txt zum Speichern) AWT, Swing, JavaFX & SWT 7
H applet Methode aus abstrakter Klasse aufrufen AWT, Swing, JavaFX & SWT 12
H Applet - Hilfedateien im Browser öffnen / eine Webseite laden AWT, Swing, JavaFX & SWT 6
O JPanel aus Applet starten AWT, Swing, JavaFX & SWT 3
O Applet-Steuerung mit Tastaturbefehlen AWT, Swing, JavaFX & SWT 3
F 4-Gewinnt als Applet AWT, Swing, JavaFX & SWT 24
F Applet vs Stand-Alone-Client AWT, Swing, JavaFX & SWT 3
B AWT Bild als Hintergrund im Applet AWT, Swing, JavaFX & SWT 2
G Applet und Swing Anwendung AWT, Swing, JavaFX & SWT 2
S Applet - Aerger mit dem Hintergrundbild - JLabel und JTextfield AWT, Swing, JavaFX & SWT 7
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
R for-Schleife in Applet ausgeben AWT, Swing, JavaFX & SWT 3
S Bild wird auf Canvas in Applet nicht gezeichnet AWT, Swing, JavaFX & SWT 4
W Swing heapsort + Applet AWT, Swing, JavaFX & SWT 4
P Diagramm in einem Applet zeichnen AWT, Swing, JavaFX & SWT 4
M Java Applet JTable/JList AWT, Swing, JavaFX & SWT 6
L Einfache Layout Frage für Applet -> Was mache ich bloss falsch? AWT, Swing, JavaFX & SWT 2
K Alternative zu Applet mit HTML-Einbindung AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben