Moin,
Ich habe eine Klasse namens Taskbar, die von JPanel erbt und eine Klasse namens StartMenu.
Jatzt möchte ich ein StartMenu darauf tun. Bei allen anderen Komponenten funktioniert es, aber
bei der Klasse StartMenu nicht.???:L
Taskbar:
StartMenu:
Ich wär sehr froh, wenn mir Jemand helfen könnte.
Ich habe eine Klasse namens Taskbar, die von JPanel erbt und eine Klasse namens StartMenu.
Jatzt möchte ich ein StartMenu darauf tun. Bei allen anderen Komponenten funktioniert es, aber
bei der Klasse StartMenu nicht.???:L
Taskbar:
Java:
package javaworld.components;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;
import javax.swing.JPanel;
public class Taskbar extends JPanel implements MouseListener {
public Taskbar(StartMenu startMenu, Component parent){
this.startMenu = startMenu;startMenu.setVisible(true);
this.parent = parent;
setSize(parent.getWidth(), 40);
Point location = parent.getLocation();
int height = parent.getHeight();
height -= getHeight();
setLocation(location.x, height);
iconCount = 0;
startMenu.setLocation(20, 0);
addMouseListener(this);
components = new Vector();
add(startMenu);
}
@Override
public void paint(Graphics gr){
super.paint(gr);
Graphics2D g = (Graphics2D) gr;
g.setColor(getBackground());
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.black);
g.drawLine(0, 0, getWidth(), 0);
g.setColor(getLighterColor(getBackground()));
g.drawLine(1, 1, getWidth(), 1);
trayIcons = new Vector();
repaintComponents();
}
@Override
public Component add(Component component){
super.add(component);
components.add(component);
return component;
}
private void repaintComponents(){
for(int i = 0; i < components.size(); i++){
components.get(i).repaint();
}
}
private Color getLighterColor(Color color){
int red = color.getRed();
int green = color.getGreen();
int blue = color.getBlue();
red += 70;
green += 70;
blue += 70;
if(red > 255) red = 255;
if(green > 255) green = 255;
if(blue > 255) blue = 255;
return new Color(red, green, blue);
}
public TrayIcon add(TrayIcon trayIcon){
trayIcon.add(trayIcon);
return trayIcon;
}
public void mouseClicked(MouseEvent e) {
System.out.println("[" + e.getX() + ", " + e.getY() + "]");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
private StartMenu startMenu;
private Component parent;
private int iconCount;
private Vector<Component> components;
private Vector<TrayIcon> trayIcons;
}
StartMenu:
Java:
package javaworld.components;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.util.Vector;
import javax.swing.JComponent;
public class StartMenu extends JComponent implements MouseListener {
public StartMenu(){
items = new Vector();
setSize(40, 40);
}
public Dimension getPopupSize(){
return popupSize;
}
public void setPopupSize(int width, int height){
popupSize.setSize(width, height);
}
public void addStartMenuItem(StartMenuItem item){
items.add(item);
}
public void setIcon(BufferedImage icon){
this.icon = icon;
}
@Override
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.black);
g.fillRect(0, 0, 100, 100);
}
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {
popup.show((StartMenuItem[])items.toArray());
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
private StartMenuPopup popup;
private Dimension popupSize;
private Vector<StartMenuItem> items;
private BufferedImage icon;
}
Ich wär sehr froh, wenn mir Jemand helfen könnte.