3.6 主界面——信息窗

        写一下信息窗,信息窗的实现主要是为了很好的打印需要打印的信息,可能这些信息会需要向日志一样输出。

        其实我的想法就是一个信息暂时的窗口,比如后面跑算法的时候,凡是需要println的地方,都可以输出到这个信息窗来,这样方便检查。

        主要就是建一个panel,实现下面的两个方法,后面需要打印的时候,就通过单例找到这个窗体的实例,然后调用者两个方法,就可以输出在这个信息窗了。

  public void AddMessage(MessageItem msg)
    {
        ListModel<MessageItem> model=list.getModel();
        DefaultListModel<MessageItem> model2=(DefaultListModel<MessageItem>)model;
        //boolean selectLast=list.getSelectedIndex()==model.getSize()-1||list.getSelectedIndex()<0;
        model2.addElement(msg);
        //if(!selectLast)
        //return;
        int index=model.getSize()-1;
        list.setSelectedIndex(index);
        list.scrollRectToVisible(list.getCellBounds(index, index));
    }
    @Override
    public void AddMessages(ArrayList<MessageItem> msgs)
    {
        ListModel<MessageItem> model=list.getModel();
        DefaultListModel<MessageItem> model2=(DefaultListModel<MessageItem>)model;
        //boolean selectLast=list.getSelectedIndex()==model.getSize()-1||list.getSelectedIndex()<0;
        for(MessageItem msg:msgs)
        {
            model2.addElement(msg);
        }
        //if(!selectLast)
        //return;
        int index=model.getSize()-1;
        list.setSelectedIndex(index);
        list.scrollRectToVisible(list.getCellBounds(index, index));
    }

调用的展示:

	IMessagePanel mp=(IMessagePanel)SingleInstance.getInstance(SingleInstanceKey.IMessagePanel);
					mp.AddMessage(
							new MessageItem("now we print a line!",MessageType.Information));

运行结果:

到这里 主界面其实就算是搭好了,后面就开始实现一些例子吧。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值