JAVA 代码求解

ywyql_84 2014-10-30 12:22:27
代码如下:

GroupList.java
public class GroupList extends JComponent implements Scrollable {

ArrayList<FolderPanel> tabs = new ArrayList<FolderPanel>();
private GroupListUI listUI;
private int panelHeight = 0;



public GroupList() {
listUI = new GroupListUI();
this.setUI(listUI);
this.setLayout(new FolderGroupLayout());

}

public void addFolder(String text) {
FolderPanel fp = new FolderPanel(text);
tabs.add(fp);
this.add(fp);
}

GroupListUI.java
public class GroupListUI extends ComponentUI {

private static final Color BACK_COLOR = new Color(116,149,226);
public static final int LEFT_PADDING=15;
public static final int TOP_PADDING=15;
private static final int RIGHT_PADDING=15;
private static final int BOTTOM_PADDING=15;

private GroupList list;

public GroupListUI() {

}
@Override
public void installUI(JComponent c) {
c.setOpaque(true);
c.setBackground(BACK_COLOR);
//c.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
c.setBorder(BorderFactory.createEmptyBorder(LEFT_PADDING,TOP_PADDING,RIGHT_PADDING,BOTTOM_PADDING));
list = (GroupList)c;
}
@Override
public void paint(Graphics g, JComponent c) {
// TODO Auto-generated method stub
System.out.println("GroupListUI paint"); //这里能调用paint输出
}

FolderPanel.java
public class FolderPanel extends JComponent {

private GroupListUI listUI;
private LabelButton button;

public FolderPanel(String text) {
//this.setBounds(listUI.LEFT_PADDING,listUI.TOP_PADDING,50,50);
this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
button = new LabelButton(text);
this.add(button);
}
}

LabelButton.java
public class LabelButton extends JComponent {

private LabelButtonUI lUI;

public LabelButton() {
this(null);
}

public LabelButton(String text) {
lUI = new LabelButtonUI(text);
this.setUI(lUI);
}
}

LabelButtonUI.java
public class LabelButtonUI extends ComponentUI {

private String text;
private LabelButton button;


public LabelButtonUI() {

}

public LabelButtonUI(String text) {
this.text = text;
}

@Override
public void installUI(JComponent c) {
// TODO Auto-generated method stub

c.setOpaque(true);
c.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
button = (LabelButton)c;
System.out.println("LabelButtonUI installUI");
}

@Override
public void paint(Graphics g, JComponent c) {
// TODO Auto-generated method stub
System.out.println("LabelButtonUI paint"); 为什么这里的paint不能被调用,无法输出呢?尝试了好久都没用,本人新手,求各位大神解释
}


}
...全文
219 5 打赏 收藏 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywyql_84 2014-10-31
  • 打赏
  • 举报
回复
我的意思是,LabelButtonUI这个paint没有被调用,自己解决了,前面没有ADD,后面肯定无法paint.....
life-of-pi 2014-10-31
  • 打赏
  • 举报
回复
System.out.println("LabelButtonUI paint");输出的是LabelButtonUI paint这个字符串。按3楼的写
kimkkkk 2014-10-31
  • 打赏
  • 举报
回复
System.out.println("LabelButtonUI"+paint);
cykabc 2014-10-30
  • 打赏
  • 举报
回复
太复杂,看不懂
ywyql_84 2014-10-30
  • 打赏
  • 举报
回复
大神都去哪了?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧