Hi,
I seem to have a strange problem , I have a jdesktop pane on which i have a panel
absolutely positioned…
on this panel i have a label … both the panel and the label have a color of (0,0,0,100) alfa
the problem is simple … every time i update the text on the label , the prev text is not erased…
instead the new text gets overlayed on the prev text…
i might be missing something really …really stupid ((after all its 4 am right now. and i cant really sleep b4 solving this. .
))
so …what am i missing???
package com.grandmaster.Game.screens;
import com.jme.renderer.ColorRGBA;
import com.jme.renderer.Renderer;
import com.jme.scene.Node;
import com.jme.scene.shape.Quad;
import com.jme.system.DisplaySystem;
import com.jmex.awt.swingui.JMEDesktop;
import com.jmex.awt.swingui.JMEDesktopState;
import com.grandmaster.Game.skins.SkinManager;
import com.grandmaster.Game.skins.SkinEnum;
import javax.swing.*;
import java.net.URL;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class ChessBoardMainScreenHUD extends JMEDesktopState {
private Node HudNode;
private DisplaySystem display;
private ChessBoardMainScreen main;
private JMEDesktop desktop;
private JLabel lbl;
private JPanel topPanel;
public ChessBoardMainScreenHUD(ChessBoardMainScreen main_scr) {
super(true); // Inits it to the size of the sceen
this.main = main_scr;
main.setHud(this);
desktop = this.getDesktop();
display = DisplaySystem.getDisplaySystem();
HudNode = this.getRootNode();
HudNode.setRenderQueueMode(Renderer.QUEUE_ORTHO);
initGUI();
HudNode.updateRenderState();
HudNode.setLocalTranslation(0, 0, 0);
}
public void SetInfo(String text){
lbl.setText(text);
lbl.repaint();
topPanel.repaint();
}
private void initGUI() {
topPanel = new JPanel();
topPanel.setLayout(null);
topPanel.setBackground(new Color(0, 0, 0, 128));
topPanel.setBorder(BorderFactory.createEmptyBorder());
lbl = new JLabel("asdsdssaasdsds");
lbl.setBorder(BorderFactory.createEtchedBorder());
lbl.setForeground(new Color(255,255,255));
topPanel.add(lbl);
lbl.setSize(display.getWidth(),50);
lbl.setLocation(0,0);
topPanel.setLocation(0,0);
topPanel.setSize(display.getWidth(),50);
desktop.getJDesktop().add(topPanel);
final JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(null);
//Add buttons to the experiment layout
bottomPanel.setBackground(new Color(0, 0, 0, 128));
bottomPanel.setBorder(BorderFactory.createEmptyBorder());
JButton tp = new JButton("");
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButZoom).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButZoomHighlight).getUrl()));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(10, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.getChessBoardHandler().ActivateZoomMode();
}
});
bottomPanel.add(tp);
tp = new JButton("");
tp.setForeground(new Color(255,255,255));
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButRotate).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButRotateHighlight).getUrl()));
tp.setMargin(new Insets(0,0,0,0));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(70, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.getChessBoardHandler().ActivateBoardRotationMode();
}
});
bottomPanel.add(tp);
tp = new JButton("");
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButTranslate).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButTranslateHighlight).getUrl()));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(130, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.getChessBoardHandler().ActivateTranslateMode();
}
});
bottomPanel.add(tp);
tp = new JButton("");
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPick).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPickHighlight).getUrl()));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(190, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.getChessBoardHandler().ActivatePickMode();
}
});
bottomPanel.add(tp);
tp = new JButton("");
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPick).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPickHighlight).getUrl()));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(190, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.getChessBoardHandler().ActivatePickMode();
}
});
bottomPanel.add(tp);
tp = new JButton("");
tp.setBorder(BorderFactory.createRaisedBevelBorder());//createEmptyBorder());
tp.setContentAreaFilled(false);
tp.setIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPick).getUrl()));
tp.setRolloverEnabled(true);
tp.setRolloverIcon(new ImageIcon(SkinManager.getDefaultManager().getTextureInfo(SkinEnum.Tex_ButPickHighlight).getUrl()));
tp.setSize(50, 50);//tp.getPreferredSize());
tp.setLocation(display.getWidth() - 60, 10);
tp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
main.ExitToMenu();
}
});
bottomPanel.add(tp);
//desktop.getJDesktop().setBackground(new Color(1,1,1,0.2f));
desktop.getJDesktop().add(bottomPanel);
bottomPanel.setSize((display.getWidth()),70);// (int) (display.getHeight() -100));
bottomPanel.setLocation(0, (int) (display.getHeight() -70));
}
}
the text update takes plce in the function set info