⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listview.java

📁 一个简单的visio程序。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				float value   = (float)Hscrollbar.getValue();
				float max    = (float)Hscrollbar.getMaximum();

				increseunit  =  (int)((value/max)*((float)ListItemsCount)) - start;

				start = (int)((value/max)*((float)ListItemsCount));
			}

			repaint();
		}else if(obj.equals(Vscrollbar)){
			int ColumnHeadersCount = columnheaders.getStoreColumnHeaders().size();
			int columnheadersWidth = 0;
			for(int i = 0;i<ColumnHeadersCount;i++){
				ColumnHeader columnheader = (ColumnHeader)(columnheaders.getStoreColumnHeaders().elementAt(i));
				columnheadersWidth = columnheadersWidth + columnheader.getWidth();
			}

			int visible = Vscrollbar.getVisibleAmount();
			int min    = Vscrollbar.getMinimum();
			float value   = (float)Vscrollbar.getValue();
			float max    = (float)Vscrollbar.getMaximum();

			if(view == 0 && arrange == 0){
				startValue = (int)(value+minXView0);
			}else if(view == 1 && arrange == 0){
				startValue = (int)(value+minXView1);
			}else{
				startValue = (int)(value);
			}
			repaint();
		}
    }

	private void drawrect(String s,boolean pressState,int left,int top,int right,int bottom,Graphics g)
	{
		FontMetrics fm = getFontMetrics(getFont());
		if(fm == null) return;
        int fontheight  = fm.getHeight();
		g.setColor(Color.lightGray);
        g.fillRect(left+1,top+1,right-left-1,bottom-top-1);
        if (! pressState)
         {
          g.setColor(Color.lightGray);
          g.drawLine(left,top,right,top);
          g.drawLine(left,top,left,bottom);
          g.setColor(Color.white);
          g.drawLine(left+1,top+1,right-1,top+1);
          g.drawLine(left+1,top+1,left+1,bottom-1);
          g.setColor(Color.black);
          g.drawLine(left,bottom,right,bottom);
          g.drawLine(right,bottom,right,top);

		  g.drawString(s,left+fontheight/4,top+bottom-fontheight/2);

          g.setColor(Color.gray);
          g.drawLine(left+1,bottom-1,right-1,bottom-1);
          g.drawLine(right-1,bottom-1,right-1,top+1);
         }
       else
         {
           g.setColor(Color.gray);
		   g.drawRect(left,top,right-left,bottom-top);
		   g.setColor(Color.black);
		   g.drawString(s,left+fontheight/4,top+bottom-fontheight/2);
	      }
	}

	public Image getIconsImage(ListItem listitem){
	    boolean isdir = listitem.getIsDir();
	    if(isdir){
    	    return CoverImage1;
        }
	    else {
	        return CoverImage2;
        }
	}

	public Image getSmallImage(ListItem listitem){
	    boolean isdir = listitem.getIsDir();
	    if(isdir){
    	    return CoverImage1;
        }
	    else {
	        return CoverImage2;
        }
	}



	private int getlistStrWidth(int imagewidth){
		FontMetrics fm = getFontMetrics(getFont());
		int ListItemsCount = listitems.getStoreListItems().size();
		int listStrWidth = 0;
		for(int i = 0;i < ListItemsCount; i++){
			ListItem listitem = (ListItem)(listitems.getStoreListItems().elementAt(i));
			String listitemString = listitem.getText();
			if(fm.stringWidth(listitemString)+imagewidth+20 > listStrWidth){
				listStrWidth = fm.stringWidth(listitemString) + imagewidth + 20;
			}
		}
		return listStrWidth;
	}

	private boolean reDraw = true;
	private boolean HscrollIsVisible(int fontheight){
		Rectangle r = getBounds();
		int Width = r.width;
		int Height = r.height;
		int ListItemsCount = listitems.getStoreListItems().size();
		if(ListItemsCount*(fontheight+1) > Height + fontheight)//18
		{
			return true;
		}
		return false;
	}

	private boolean VscrollIsVisible(){
		Rectangle r = getBounds();
		int Width = r.width;
		int Height = r.height;
		int ColumnHeadersCount = columnheaders.getStoreColumnHeaders().size();
		int columnheadersWidth = 0;
		for(int i = 0;i<ColumnHeadersCount;i++){
			ColumnHeader columnheader = (ColumnHeader)(columnheaders.getStoreColumnHeaders().elementAt(i));
			columnheadersWidth = columnheadersWidth + columnheader.getWidth();
		}
		if(columnheadersWidth > Width){
			return true;
		}
		return false;
	}

	public void setCurrentListIndex(){
	    CurrentListIndex = -1;
	    listitemclick = null;
	}

	private int getLongestString(){
		FontMetrics fm = getFontMetrics(getFont());
		int ListItemsCount = listitems.getStoreListItems().size();
		int listStrWidth = 0;
		for(int i = 0;i < ListItemsCount; i++){
			ListItem listitem = (ListItem)(listitems.getStoreListItems().elementAt(i));
			String listitemString = listitem.getText();
			if(fm.stringWidth(listitemString) > listStrWidth){
				listStrWidth = fm.stringWidth(listitemString);
			}
		}
		return listStrWidth;
	}

    public void drawLineOfRect(Graphics g,int startx,int starty,int endx,int endy) {

            int x = Math.min(startx,endx);
            int y = Math.min(starty,endy);
            int w = Math.abs(endx-startx);
            int h = Math.abs(endy-starty);

            g.setColor(Color.darkGray);

            for (int i=x; i<(x+w-1);i=i+5) {
                 g.drawLine(i,y,i+3,y);
                 g.drawLine(i,y+h,i+3,y+h);
                 i=i+5;
            }
            for (int i=y; i<(y+h-1);i=i+5) {
                g.drawLine(x,i,x,i+3);
                g.drawLine(x+w,i,x+w,i+3);
                i=i+5;
            }
    }//end drawLineOfRect.

    public Color getForeColor(){
        return super.getForeground();
    }

	public boolean getGridLines(){
		return gridlines;
	}

    public Color getBackColor()
	{
      return super.getBackground();
    }

 public void mouseDragged(MouseEvent e){
		int addwidth = e.getX() - mousex;
		int columnwidth = 0;
		if(ChangeColumnWidth != null)
		{
			columnwidth = ChangeColumnWidth.getWidth();
		}
		if(canResize)
		{
			if(addwidth<0 && columnwidth > 0)
			{
				ChangeColumnWidth.setWidth(columnwidth + addwidth);
				repaint();
			}else if(addwidth>0){
				ChangeColumnWidth.setWidth(columnwidth + addwidth);
				repaint();
			}
		}

		mousex = e.getX();
		mousey = e.getY();
    }

 public void mouseMoved(MouseEvent e){

		FontMetrics fm = getFontMetrics(getFont());
		if(fm == null) return;
        int fontheight  = fm.getHeight();
		mousey = e.getY();
		mousex = e.getX();
		int columnheaderLeft = 0 - startValue;
		if(mousey > 0 && mousey < 2*fontheight)
		{
			for(int i = 0;i<columnheaders.getStoreColumnHeaders().size();i++){
				ColumnHeader columnheader = (ColumnHeader)(columnheaders.getStoreColumnHeaders().elementAt(i));
				columnheaderLeft = columnheaderLeft + columnheader.getWidth();
				if(mousex > columnheaderLeft-5 && mousex < columnheaderLeft+5){
					setCursor(eResizeCursor);
					if(i<columnheaders.getStoreColumnHeaders().size() - 1 ){
						ColumnHeader nextcolumnheader = (ColumnHeader)(columnheaders.getStoreColumnHeaders().elementAt(i+1));
						if(nextcolumnheader.getWidth() < 5){
							if(mousex > columnheaderLeft){
								ChangeColumnWidth = nextcolumnheader;
							}else{
								ChangeColumnWidth = columnheader;
							}
						}else{
							ChangeColumnWidth = columnheader;
						}
					}else{
						ChangeColumnWidth = columnheader;
					}
					canResize = true;
					break;
				}else{
					setCursor(defaultCursor);
					canResize = false;
				}
			}
		}
		else
		{
			setCursor(defaultCursor);
			canResize = false;
		}
    }
public Dimension getPreferredSize() {
    return getMinimumSize();
}

public Dimension getMinimumSize() {
	return (new Dimension(200,200));
}

 public void focusGained(FocusEvent e){}
 public void focusLost(FocusEvent e){}

 public void keyPressed(KeyEvent e){ 
    int code  = e.getKeyCode();
    if(code == KeyEvent.VK_DELETE){
      if(listitemclick != null){
        String st = listitemclick.getText();
        String msg = "Do you want to remove '" + st +"'?";
	    int state = MsgBox.MessageBox(new java.awt.Frame(), "Instant Basic", msg, MsgBox.OK + MsgBox.CANCEL, 1);
//        int state = 0;
	    if(state == MsgBox.CANCEL) {
    		return;
	    }
        try{
            listitems.Remove(listitemclick.getIndex());
            repaint();
        }catch(Exception ex){
            ex.printStackTrace();
            return;
        }
        filedialog.deleteFile(st);
        listitemclick = null;
        CurrentListIndex = -1;
      }
    }else if(code == KeyEvent.VK_ENTER){

        if(listitemclick == null) return;
        String   name   = listitemclick.getText();
        boolean  isdir  = listitemclick.getIsDir();
        filedialog.clickListItems(name,isdir);
      }else  if (code == KeyEvent.VK_UP){  
        CurrentListIndex -= 1;
        if(CurrentListIndex == -1) CurrentListIndex = 0;
        keys();
      }else if (code == KeyEvent.VK_DOWN){
        int ListItemsCount = listitems.getStoreListItems().size();
        CurrentListIndex += 1;
        if(CurrentListIndex == ListItemsCount) CurrentListIndex = ListItemsCount - 1;
        keys();
     }else if (code == KeyEvent.VK_LEFT){
        int ListItemsCount = listitems.getStoreListItems().size();
        CurrentListIndex -= 15;
        if (CurrentListIndex < 0) {
            CurrentListIndex += 15;
            keys();
            } //huangbin.
        keys();
     }else if (code == KeyEvent.VK_RIGHT){
        int ListItemsCount = listitems.getStoreListItems().size();
        CurrentListIndex += 15;
        if (CurrentListIndex > ListItemsCount-1){
            CurrentListIndex -= 15;
            keys();
            }//return;
        keys();
       }
  }
 public void keyReleased(KeyEvent e){}
 public void keyTyped(KeyEvent e){}

 public void keys(){
        int ListItemsCount = listitems.getStoreListItems().size();
        int m = 0;
		while ((m < ListItemsCount))
		{
			ListItem listitem = (ListItem)(listitems.getStoreListItems().elementAt(m));
			listitem.setSelected(false);
			m++;
		}
		if(listitems.getStoreListItems().size() > 0)
		{
			ListItem listitemclick = (ListItem)(listitems.getStoreListItems().elementAt(CurrentListIndex));
			listitemclick.setSelected(true);
			boolean isdir = listitemclick.getIsDir();
			String itemSt = listitemclick.getText();
			if (!isdir){
			filedialog.setText(itemSt);
			}
		}
		repaint();
}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -