JPanel på Bagggrundsbillede??
Hej hej....Min GUI består bla. af en JDesktopPane, som jeg har lagt et baggrundsbillede på. Det virker fint.
Men i det tilfælde at jeg vil instatiere min LoadPanel (JPanel)
loadPanel = new LoadPanel(this);
desktop.add(loadPanel);
loadPanel.setVisible(true);
loadPanel.setLocation((desktop.getSize().width)-150,10);
vises denne ikke gennem baggrundsbilledet.
jeg har prøvet uden held med
baggrund.add(loadPanel);
hvis det ikke afskrækker for meget er min GUI her:
public class GUI extends JFrame
{
Kontrol control;
AddChaFrame addChaFrame;
WeaponFrame weaponFrame;
ArmorFrame armorFrame;
IconFrame imageFrame;
LoadPanel loadPanel;
Attacker attack;
Defender defend;
Dialog dia;
App app;
JDesktopPane desktop;
JPanel p;
Baggrund baggrund;
public GUI()
{
super("Merp-HelpDesk");
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//Dimension frameSize = content.getSize();
setSize(screenSize.width, screenSize.height-30);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
baggrund = new Baggrund();
baggrund.setLocation(0,0);
desktop = new JDesktopPane();
final JPanel p = new JPanel(new GridBagLayout());
desktop.addComponentListener(new ComponentAdapter()
{
public void ComponentResized(ComponentEvent ev)
{
Dimension desktopSize = desktop.getSize();
p.setBounds(0,0,desktopSize.width, desktopSize.height);
p.validate();
}
});
desktop.add(baggrund);
JPanel buttonPanel = new JPanel();
JButton addEnemy = new JButton("Load Character");
addEnemy.setBackground(new Color(67, 175, 16));
addEnemy.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
loadCharacter();
}
});
JButton nextRound = new JButton("Create Character");
nextRound.setBackground(new Color(67, 175, 16));
nextRound.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
addCharacter();
}
});
buttonPanel.setBackground(new Color(10,120,30));
buttonPanel.add(addEnemy);
buttonPanel.add(nextRound);
getContentPane().add(desktop, BorderLayout.CENTER);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
control = new Kontrol(this);
attack = Attacker.getInstance();
attack.setLocation((desktop.getSize().width)+110, (desktop.getSize().height/2)+728);
desktop.add(attack);
attack.setVisible(true);
defend = Defender.getInstance();
defend.setLocation((desktop.getSize().width/2)+800, (desktop.getSize().height/2)+728);
desktop.add(defend);
defend.setVisible(true);
dia = new Dialog(this);
dia.setLocation(((desktop.getSize().width)/2)+482, (desktop.getSize().height/2)+728);
desktop.add(dia);
dia.setVisible(true);
/*ImageIcon icon = new ImageIcon("cor1.bmp");
JLabel label = new JLabel();
label.setIcon(icon);
p.add(label);
label.setVisible(true);
label.setLocation(0,0);
*/
}
public void addCharacter()
{
addChaFrame = new AddChaFrame(this);
desktop.add(addChaFrame);
addChaFrame.setVisible(true);
addChaFrame.setLocation((desktop.getSize().width/2)-105, (desktop.getSize().height/2)-170);
}
public void addWeapon()
{
weaponFrame = new WeaponFrame(this);
desktop.add(weaponFrame);
weaponFrame.setVisible(true);
weaponFrame.setLocation((desktop.getSize().width/2)-295, (desktop.getSize().height/2)-170);
}
public void addIconFrame()
{
imageFrame = new IconFrame(this);
desktop.add(imageFrame);
imageFrame.setVisible(true);
imageFrame.setLocation((desktop.getSize().width/2)+113,(desktop.getSize().height/2)-170);
}
public void loadCharacter()
{
loadPanel = new LoadPanel(this);
desktop.add(loadPanel);
loadPanel.setVisible(true);
loadPanel.setLocation((desktop.getSize().width)-150,10);
}
public void addArmorFrame()
{
armorFrame = new ArmorFrame(this);
desktop.add(armorFrame);
armorFrame.setVisible(true);
armorFrame.setLocation((desktop.getSize().width/2)-105,(desktop.getSize().height/2)+112);
}
public class Baggrund extends JPanel
{
public Baggrund()
{
super(true);
setSize(1280,1024);
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2 = (Graphics2D)g.create();
Image im = Toolkit.getDefaultToolkit().getImage("baggrund.gif");
ImageIcon image = new ImageIcon(im);
g2.drawImage(image.getImage(),0, 0, 1280, 1024, this);
}
}
}
