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

📄 statusbar.java

📁 Linux下面最好用的程序、文本编辑工具之一。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			if (visible >= lineCount)			{				buf.append("All");			}			else if (firstLine == 0)			{				buf.append("Top");			}			else if (firstLine + visible >= lineCount)			{				buf.append("Bot");			}			else			{				float percent = (float)firstLine / (float)lineCount					* 100.0f;				buf.append(Integer.toString((int)percent));				buf.append('%');			}			caretStatus.setText(buf.toString());		}	} //}}}	//{{{ updateBufferStatus() method	public void updateBufferStatus()	{		//if(!isShowing())		//	return;		Buffer buffer = view.getBuffer();		if (showWrap)		{			String wrap = buffer.getStringProperty("wrap");			if(wrap.equals("none"))				this.wrap.setText("-");			else if(wrap.equals("hard"))				this.wrap.setText("H");			else if(wrap.equals("soft"))				this.wrap.setText("S");		}		if (showLineSeperator)		{			String lineSep = buffer.getStringProperty("lineSeparator");			if("\n".equals(lineSep))				this.lineSep.setText("U");			else if("\r\n".equals(lineSep))				this.lineSep.setText("W");			else if("\r".equals(lineSep))				this.lineSep.setText("M");		}		if (showEditMode || showFoldMode || showEncoding)		{			/* This doesn't look pretty and mode line should			 * probably be split up into seperate			 * components/strings			 */			buf.setLength(0);			if (buffer.isLoaded())			{				if (showEditMode)					buf.append(buffer.getMode().getName());				if (showFoldMode)				{					if (showEditMode)						buf.append(",");					buf.append((String)view.getBuffer().getProperty("folding"));				}				if (showEncoding)				{					if (showEditMode || showFoldMode)						buf.append(",");					buf.append(buffer.getStringProperty("encoding"));				}			}			mode.setText("(" + buf.toString() + ")");		}	} //}}}	//{{{ updateMiscStatus() method	public void updateMiscStatus()	{		//if(!isShowing())		//	return;		JEditTextArea textArea = view.getTextArea();		if (showMultiSelect)			multiSelect.setText(textArea.isMultipleSelectionEnabled()				? "M" : "-");		if (showRectSelect)			rectSelect.setText(textArea.isRectangularSelectionEnabled()				? "R" : "-");		if (showOverwrite)			overwrite.setText(textArea.isOverwriteEnabled()				? "O" : "-");	} //}}}	//{{{ Private members	private View view;	private JPanel panel;	private Box box;	private ToolTipLabel caretStatus;	private Component messageComp;	private JLabel message;	private JLabel mode;	private JLabel wrap;	private JLabel multiSelect;	private JLabel rectSelect;	private JLabel overwrite;	private JLabel lineSep;	/* package-private for speed */ StringBuffer buf = new StringBuffer();	private Timer tempTimer;	private boolean currentMessageIsIO;	private Segment seg = new Segment();	private boolean showCaretStatus;	private boolean showEditMode;	private boolean showFoldMode;	private boolean showEncoding;	private boolean showWrap;	private boolean showMultiSelect;	private boolean showRectSelect;	private boolean showOverwrite;	private boolean showLineSeperator;	//}}}	static final String caretTestStr = "9999,999-999 99%";	//{{{ MouseHandler class	class MouseHandler extends MouseAdapter	{		public void mouseClicked(MouseEvent evt)		{			Buffer buffer = view.getBuffer();			Object source = evt.getSource();			if(source == caretStatus)			{				if(evt.getClickCount() == 2)					view.getTextArea().showGoToLineDialog();			}			else if(source == mode)			{				if(evt.getClickCount() == 2)					new BufferOptions(view,view.getBuffer());			}			else if(source == wrap)				buffer.toggleWordWrap(view);			else if(source == multiSelect)				view.getTextArea().toggleMultipleSelectionEnabled();			else if(source == rectSelect)				view.getTextArea().toggleRectangularSelectionEnabled();			else if(source == overwrite)				view.getTextArea().toggleOverwriteEnabled();			else if(source == lineSep)				buffer.toggleLineSeparator(view);		}	} //}}}	//{{{ ToolTipLabel class	class ToolTipLabel extends JLabel	{		//{{{ getToolTipLocation() method		public Point getToolTipLocation(MouseEvent event)		{			return new Point(event.getX(),-20);		} //}}}	} //}}}	//{{{ MemoryStatus class	class MemoryStatus extends JComponent implements ActionListener	{		//{{{ MemoryStatus constructor		public MemoryStatus()		{			// fucking GTK look and feel			Font font = new JLabel().getFont();			//Font font = UIManager.getFont("Label.font");			MemoryStatus.this.setFont(font);			FontRenderContext frc = new FontRenderContext(				null,false,false);			Rectangle2D bounds = font.getStringBounds(						memoryTestStr,frc);			Dimension dim = new Dimension((int)bounds.getWidth(),				(int)bounds.getHeight());			setPreferredSize(dim);			setMaximumSize(dim);			lm = font.getLineMetrics(memoryTestStr,frc);			setForeground(jEdit.getColorProperty("view.status.foreground"));			setBackground(jEdit.getColorProperty("view.status.background"));			progressForeground = jEdit.getColorProperty(				"view.status.memory.foreground");			progressBackground = jEdit.getColorProperty(				"view.status.memory.background");			addMouseListener(new MouseHandler());		} //}}}		//{{{ addNotify() method		public void addNotify()		{			super.addNotify();			timer = new Timer(2000,this);			timer.start();			ToolTipManager.sharedInstance().registerComponent(this);		} //}}}		//{{{ removeNotify() method		public void removeNotify()		{			timer.stop();			ToolTipManager.sharedInstance().unregisterComponent(this);			super.removeNotify();		} //}}}		//{{{ getToolTipText() method		public String getToolTipText()		{			Runtime runtime = Runtime.getRuntime();			int freeMemory = (int)(runtime.freeMemory() / 1024);			int totalMemory = (int)(runtime.totalMemory() / 1024);			int usedMemory = (totalMemory - freeMemory);			Integer[] args = { new Integer(usedMemory),				new Integer(totalMemory) };			return jEdit.getProperty("view.status.memory-tooltip",args);		} //}}}		//{{{ getToolTipLocation() method		public Point getToolTipLocation(MouseEvent event)		{			return new Point(event.getX(),-20);		} //}}}		//{{{ actionPerformed() method		public void actionPerformed(ActionEvent evt)		{			MemoryStatus.this.repaint();		} //}}}		//{{{ paintComponent() method		public void paintComponent(Graphics g)		{			Insets insets = new Insets(0,0,0,0);//MemoryStatus.this.getBorder().getBorderInsets(this);			Runtime runtime = Runtime.getRuntime();			int freeMemory = (int)(runtime.freeMemory() / 1024);			int totalMemory = (int)(runtime.totalMemory() / 1024);			int usedMemory = (totalMemory - freeMemory);			int width = MemoryStatus.this.getWidth()				- insets.left - insets.right;			int height = MemoryStatus.this.getHeight()				- insets.top - insets.bottom - 1;			float fraction = ((float)usedMemory) / totalMemory;			g.setColor(progressBackground);			g.fillRect(insets.left,insets.top,				(int)(width * fraction),				height);			String str = (usedMemory / 1024) + "/"				+ (totalMemory / 1024) + "Mb";			FontRenderContext frc = new FontRenderContext(null,false,false);			Rectangle2D bounds = g.getFont().getStringBounds(str,frc);					Graphics g2 = g.create();			g2.setClip(insets.left,insets.top,				(int)(width * fraction),				height);			g2.setColor(progressForeground);			g2.drawString(str,				insets.left + (int)(width - bounds.getWidth()) / 2,				(int)(insets.top + lm.getAscent()));			g2.dispose();			g2 = g.create();			g2.setClip(insets.left + (int)(width * fraction),				insets.top,MemoryStatus.this.getWidth()				- insets.left - (int)(width * fraction),				height);			g2.setColor(MemoryStatus.this.getForeground());			g2.drawString(str,				insets.left + (int)(width - bounds.getWidth()) / 2,				(int)(insets.top + lm.getAscent()));			g2.dispose();		} //}}}		//{{{ Private members		private static final String memoryTestStr = "999/999Mb";		private LineMetrics lm;		private Color progressForeground;		private Color progressBackground;		private Timer timer;		//}}}		//{{{ MouseHandler class		class MouseHandler extends MouseAdapter		{			public void mousePressed(MouseEvent evt)			{				if(evt.getClickCount() == 2)				{					jEdit.showMemoryDialog(view);					repaint();				}			}		} //}}}	} //}}}	//{{{ Clock class	class Clock extends JLabel implements ActionListener	{		//{{{ Clock constructor		public Clock()		{			/* FontRenderContext frc = new FontRenderContext(				null,false,false);			Rectangle2D bounds = getFont()				.getStringBounds(getTime(),frc);			Dimension dim = new Dimension((int)bounds.getWidth(),				(int)bounds.getHeight());			setPreferredSize(dim);			setMaximumSize(dim); */			setForeground(jEdit.getColorProperty("view.status.foreground"));			setBackground(jEdit.getColorProperty("view.status.background"));		} //}}}		//{{{ addNotify() method		public void addNotify()		{			super.addNotify();			update();			int millisecondsPerMinute = 1000 * 60;			timer = new Timer(millisecondsPerMinute,this);			timer.setInitialDelay((int)(				millisecondsPerMinute				- System.currentTimeMillis()				% millisecondsPerMinute) + 500);			timer.start();			ToolTipManager.sharedInstance().registerComponent(this);		} //}}}		//{{{ removeNotify() method		public void removeNotify()		{			timer.stop();			ToolTipManager.sharedInstance().unregisterComponent(this);			super.removeNotify();		} //}}}		//{{{ getToolTipText() method		public String getToolTipText()		{			return new Date().toString();		} //}}}		//{{{ getToolTipLocation() method		public Point getToolTipLocation(MouseEvent event)		{			return new Point(event.getX(),-20);		} //}}}		//{{{ actionPerformed() method		public void actionPerformed(ActionEvent evt)		{			update();		} //}}}		//{{{ Private members		private Timer timer;		//{{{ getTime() method		private String getTime()		{			return DateFormat.getTimeInstance(				DateFormat.SHORT).format(new Date());		} //}}}		//{{{ update() method		private void update()		{			setText(getTime());		} //}}}		//}}}	} //}}}}

⌨️ 快捷键说明

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