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:
Dazu noch die HTML-Datei für den Appleviewer
Jetzt den Code der Application
Kann mir jemand helfen?.
Ich benutze JAVA in der Version 1.4.2_09 auf einem i-386 Debian-Sarge System
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