steff aka sId
Erfahrenes Mitglied
Hi ich habe ein Applet in dieses will ich ein Hintergrund bild einbinden das ganze funktioniert auch allerdings soll auf dem Hintergrund dann ein JPanel liegen mit einem Text das man per Maus auf dem Hintergrund ziehen kann. Was brauche ich dafür für eine Einstellung. Bis jetzt bin ich soweit:
Greetz Steff
P.s. Kennt einer eventuell einen Link wo so etwas erklärt wird?
Code:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JApplet;
/*
* Created on 21.02.2005
*/
/**
* @author Steffen Rumpf
*/
public class Main extends JApplet implements MouseMotionListener{
/**
* the label which contains the text
*/
private TextPanel textPanel = null;
private String error = null;
/**
* the color for the text
*/
private String color = "not initialized";
/**
* the font for the text
*/
private String font = "not initialized";
private String[] text = null;
private Image pic = null;
/** (non-Javadoc)
* @see java.applet.Applet#init()
*/
public void init() {
// read parameter
color = getParameter("color");
font = getParameter("font");
int i = 0;
// read a variable count of text lines, which are created by a php script
while(true) {
if(null == getParameter("text"+i)) {
break;
} else {
if(null == text) {
text = new String[1];
text[0] = getParameter("text"+i);
}else {
String[] hilf = new String[text.length];
System.arraycopy(text, 0, hilf, 0, text.length);
text = new String[hilf.length + 1];
System.arraycopy(hilf, 0, text, 0, hilf.length);
text[i] = getParameter("text"+i);
}
}
System.out.println(text[i]);
i++;
}
// NullLayout
this.getContentPane().setLayout(null);
// set applet background to white
getContentPane().setBackground(Color.white);
// create the url for the font-file
URL myurl = null;
try {
myurl = new URL(getDocumentBase(), "./fonts/"+font);
} catch (MalformedURLException e) {
error = "MalformedURLException";
}
textPanel = new TextPanel(color, myurl, text, error);
textPanel.setBounds(25, 75, 350, 90);
this.getContentPane().add(textPanel);
this.getContentPane().addMouseMotionListener(this);
// create the url for the background image
try {
pic = getImage(new URL(getCodeBase()+File.separator+"auto.jpg"));
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
}
/** (non-Javadoc)
* @see java.awt.Component#paint(java.awt.Graphics)
* Paint the background image
*/
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(pic, 0, 0, this);
}
/** (non-Javadoc)
* @see java.awt.event.MouseMotionListener#mouseDragged(java.awt.event.MouseEvent)
* when the mouse is dragged set the bounds of the textPanel to the Position of
* the mouse cursor. If this position is inside the applet.
*/
public void mouseDragged(MouseEvent arg0) {
int x = arg0.getX();
int y = arg0.getY();
if(x < 0) {
x = 0;
}else if( x > 200 - 150 ) {
x = 200 - 150;
}
if(y < 0) {
y = 0;
}else if( y > 200 - 90 ) {
y = 200 - 90;
}
textPanel.setOpaque(true);
textPanel.setBounds(x, y, 350,90);
repaint();
}
public void mouseMoved(MouseEvent arg0) {
// Not used
}
}
Greetz Steff
P.s. Kennt einer eventuell einen Link wo so etwas erklärt wird?
Zuletzt bearbeitet: