Java me 如何设置每个列表';s命令组件,以便包含的对话框和命令之间没有空间';什么短信?
有一个对话框,其中包含命令列表。当显示时,Java me 如何设置每个列表';s命令组件,以便包含的对话框和命令之间没有空间';什么短信?,java-me,lwuit,Java Me,Lwuit,有一个对话框,其中包含命令列表。当显示时,公共组件getListFocusComponent(List List)方法的标签呈现器和公共组件getListCellRenderComponent的组件(List List,Object value,int index,boolean isSelected)派生类的方法DefaultListCellRenderer没有占据对话框的全部宽度 那么,如何使标签和选择组件占据包含对话框的所有宽度呢 代码如下: public class CMenu exte
公共组件getListFocusComponent(List List)
方法的标签呈现器和公共组件getListCellRenderComponent的组件(List List,Object value,int index,boolean isSelected)
派生类的方法DefaultListCellRenderer
没有占据对话框的全部宽度
那么,如何使标签和选择组件占据包含对话框的所有宽度呢
代码如下:
public class CMenu extends Dialog {
private String disp;
private List lCmds;
public static Command retCommand;
public CMenu(Command[] cmds, String disposition)
{
super();
this.getStyle().setBorder(Border.createRoundBorder(10, 20));
afficheCmd(cmds);
this.setScrollableY(false);
disp = disposition;
}
private void afficheCmd(Command[] cmds)
{
lCmds = new List(cmds);
lCmds.setListCellRenderer(new TickerRenderer());
lCmds.setCommandList(true);
lCmds.setPreferredW(this.getPreferredW());
lCmds.setFixedSelection(List.FIXED_NONE_CYCLIC);
((DefaultListCellRenderer)lCmds.getRenderer()).setShowNumbers(false);
this.addComponent(lCmds);
lCmds.setSelectedIndex(0);
lCmds.requestFocus();
}
protected void onShow()
{
lCmds.setSelectedIndex(0);
lCmds.requestFocus();
}
public void affiche()
{
int top = Display.getInstance().getDisplayHeight() - lCmds.getHeight();
if (disp.equalsIgnoreCase("gauche"))
{
this.show(top, 0, 0, 100, false);
}
else
{
this.show(top, 0, 100, 0, false);
}
lCmds.requestFocus();
lCmds.setSelectedIndex(0);
}
protected void actionCommand(Command cmd)
{
retCommand = cmd;
this.dispose();
}
}
class TickerRenderer extends DefaultListCellRenderer {
private DefaultListCellRenderer selectedRenderer = new DefaultListCellRenderer(false);
private List parentList;
public TickerRenderer() {
super(false);
}
public boolean animate() {
if (parentList != null && parentList.getComponentForm() != null) {
if (selectedRenderer.isTickerRunning()) {
if (selectedRenderer.animate()) {
parentList.repaint();
}
}
}
return super.animate();
}
public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected)
{
if (isSelected)
{
(selectedRenderer.getListCellRendererComponent(list, value, index, isSelected)).getSelectedStyle().setBgTransparency(0);
(selectedRenderer.getListCellRendererComponent(list, value, index, isSelected)).getUnselectedStyle().setBgTransparency(0);
(selectedRenderer.getListCellRendererComponent(list, value, index, isSelected)).getSelectedStyle().setFgColor(16777215);
(selectedRenderer.getListCellRendererComponent(list, value, index, isSelected)).getUnselectedStyle().setFgColor(0);
if (index == list.getSelectedIndex())
{
if (selectedRenderer.shouldTickerStart())
{
if (!selectedRenderer.isTickerRunning())
{
parentList = list;
list.getComponentForm().registerAnimated(this);
selectedRenderer.startTicker(UIManager.getInstance().getLookAndFeel().getTickerSpeed(), true);
}
}
else
{
if (selectedRenderer.isTickerRunning())
{
selectedRenderer.stopTicker();
}
}
}
return selectedRenderer;
}
else
{
return super.getListCellRendererComponent(list, value, index, isSelected);
}
}
public Component getListFocusComponent(List list) {
Label label = new Label("");
label.getStyle().setBgTransparency(255);
label.getStyle().setBgColor(205388);
label.getStyle().setBorder(Border.createRoundBorder(5, 10, 16777215));
return label;
}
}
好的,给你:
lCmds.getSelectedStyle().setPadding(0, 0, 0, 0);
lCmds.getUnselectedStyle().setPadding(0, 0, 0, 0);
this.getContentPane().getSelectedStyle().setPadding(0, 0, 0, 0);
this.getContentPane().getUnselectedStyle().setPadding(0, 0, 0, 0);
this.addComponent(lCmds);