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

📄 testframe.java

📁 JGraph扩展应用。自定义Renderer,自定义视图View实现自定义工作流控件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	
	public void setEditable1(boolean able){
		pane.setEditable(able);
	}
	
	public void setBackground1(Color color){
		pane.setBackground(color);
	}
	/*
	public void paint(Graphics g){
		super.paint(g);

		// We need to properly convert the points to match the viewport
		// Read docs for viewport
		int start =pane.viewToModel(scrollPane.getViewport().getViewPosition()); //starting pos in document
		int end =pane.viewToModel(new Point(
				scrollPane.getViewport().getViewPosition().x + pane.getWidth(),
				scrollPane.getViewport().getViewPosition().y + pane.getHeight()));
		// end pos in doc

		// translate offsets to lines
		Document doc = pane.getDocument();
		int startline = doc.getDefaultRootElement().getElementIndex(start) ;
		int endline = doc.getDefaultRootElement().getElementIndex(end);

		int fontHeight = g.getFontMetrics(pane.getFont()).getHeight(); // fontheight

		for (int line = startline, y = 0; line <= endline; line++, y +=fontHeight){
			g.drawString(Integer.toString(line), 0, y);
		}
	}*/
	
	public void paint(Graphics g){
		super.paint(g);
		//System.out.println("font="+pane.getFont());
		// We need to properly convert the points to match the viewport
		// Read docs for viewport
		int start = pane.viewToModel(scrollPane.getViewport().getViewPosition()); //starting pos in document
		int end = pane.viewToModel(new Point(
			scrollPane.getViewport().getViewPosition().x + pane.getWidth(),
			scrollPane.getViewport().getViewPosition().y + pane.getHeight()));
		// end pos in doc

		// translate offsets to lines
		Document doc = pane.getDocument();
		int startline = doc.getDefaultRootElement().getElementIndex(start) + 1;
		int endline = doc.getDefaultRootElement().getElementIndex(end) + 1;

		int fontHeight = g.getFontMetrics(pane.getFont()).getHeight();
		int fontDesc = g.getFontMetrics(pane.getFont()).getDescent();
		int starting_y = -1;

		try{
			starting_y = pane.modelToView(start).y - scrollPane.getViewport().getViewPosition().y + fontHeight - fontDesc;
		}
		catch (BadLocationException e1){
			e1.printStackTrace();
		}

		int testline = 0;
		//System.out.println(starting_y);
		g.setColor(Color.GRAY);
		for (int line = startline, y = starting_y; line <= endline; y += fontHeight, line++){
			//System.out.println("line="+line+",y="+y);
			testline=line;
			g.drawString(Integer.toString(line), 0, y);
		}
		int bit = (testline+"").length();
		if(bit > numberLength){
			numberLength = bit;
			setMaximumSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));
			setPreferredSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));//每个数字占8个单位
			setMinimumSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));
			updateUI();
			
		}
		else if(bit < numberLength){
			numberLength = bit;
			setMaximumSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));
			setPreferredSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));//每个数字占8个单位
			setMinimumSize(new Dimension(BIT_SIZE_SPACE+BIT_SIZE*bit, BIT_SIZE_SPACE+BIT_SIZE*bit));
			updateUI();
		}
        Element root = doc.getDefaultRootElement();
		
		//取光标当前行
        int cursorPos = pane.getCaretPosition();    
		//当前光标的位置
        int line = root.getElementIndex(cursorPos);
		int all = root.getElementIndex(doc.getLength());
		staturBar.updateStatus((all+1)+"", (line+1)+"", doc.getLength()+"");
	}
	
	private String getSpace(int n){
		String str = "";
		for(int i=0;i<n;i++)
			str += " ";
		return str;
	}
	
	public String getText(){
		return pane.getText();
	}
	
	public void setText(String s){
		pane.setText(s);
	}
	class UndoAct extends AbstractAction implements UndoableEditListener {
	    private UndoableEdit edit;

	    public UndoAct() {
			super("Undo");
			setEnabled(false);
	    }

	    public void updateEnabled() {
			setEnabled(edit.canUndo());
	    }

	    public void undoableEditHappened(UndoableEditEvent event) {
			edit = event.getEdit();
			putValue(NAME, edit.getUndoPresentationName());
			updateEnabled();
	    }

	    public void actionPerformed(ActionEvent ae) {
			edit.undo();
			updateEnabled(); // disable undo
			redoAction.updateEnabled(); // enable redo
	    }
	}		 
	class RedoAct extends AbstractAction implements UndoableEditListener {
	    private UndoableEdit edit;

	    public RedoAct() {
			super("Redo");
			setEnabled(false);
	    }

	    public void updateEnabled() {
			setEnabled(edit.canRedo());
	    }

	    public void undoableEditHappened(UndoableEditEvent event) {
			edit = event.getEdit();
			putValue(NAME, edit.getRedoPresentationName());
			updateEnabled();
	    }

	    public void actionPerformed(ActionEvent ae) {
			edit.redo();
			updateEnabled(); // disable redo
			undoAction.updateEnabled(); // enable undo
		}
	}
	
	public static void main(String[] args){
		//JHightLightLineTextPane.configureUI();
		com.nilo.plaf.nimrod.NimRODLookAndFeel nf = new com.nilo.plaf.nimrod.NimRODLookAndFeel();
		com.nilo.plaf.nimrod.NimRODTheme nt = new com.nilo.plaf.nimrod.NimRODTheme();
		com.nilo.plaf.nimrod.NimRODLookAndFeel.setCurrentTheme( nt);

		try {
			UIManager.setLookAndFeel( nf);
		} catch (UnsupportedLookAndFeelException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		JFrame frame = new JFrame("HightLight Edit test...");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(new BorderLayout());
		final TestFrame nr = new TestFrame();
		final JTextArea textCode = new JTextArea();
		
		JTabbedPane tab = new JTabbedPane();
		JPanel pane = new JPanel(new BorderLayout());
		pane.add(nr, BorderLayout.WEST);
		pane.add(nr.scrollPane, BorderLayout.CENTER);
		/*
		tab.addMouseListener(new MouseListener(){

			public void mouseClicked(MouseEvent e) {
				System.out.println("mouseClicked---------");
				// TODO Auto-generated method stub
				//System.out.println(((ParseCodeTab)e.getComponent()).getTitleAt(((ParseCodeTab)e.getComponent()).getSelectedIndex()));
				//e.getComponent().setForeground(Color.BLACK);
				if(((JTabbedPane)e.getComponent()).getSelectedIndex() == 0){
					nr.setText(textCode.getText());
				}
			}

			public void mousePressed(MouseEvent e) {
				System.out.println("mousePressed---------");
				// TODO Auto-generated method stub
				
			}

			public void mouseReleased(MouseEvent e) {
				System.out.println("mouseReleased---------");
				// TODO Auto-generated method stub
				
			}

			public void mouseEntered(MouseEvent e) {
				System.out.println("mouseEntered---------");
				// TODO Auto-generated method stub
				
			}

			public void mouseExited(MouseEvent e) {
				System.out.println("mouseExited---------");
				// TODO Auto-generated method stub
				
			}
		});*/
		
		tab.add("代码测试", pane);
		tab.add("代码预览", new JScrollPane(textCode));
		JPanel buttonPanel = new JPanel(new FlowLayout());
		JNormalButton exitButton = new JNormalButton("关  闭");
		exitButton.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}});
		buttonPanel.add(exitButton);
		frame.getContentPane().add(tab, BorderLayout.CENTER);
		frame.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
		frame.pack();
		frame.setSize(new Dimension(400, 400));
		frame.show();
	}
}

⌨️ 快捷键说明

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