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

📄 calcuate.java

📁 Java编写的仿windows计算器
💻 JAVA
字号:
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;

public class Calcuate extends JFrame implements ActionListener {
   private Container container;
   private CreateButton calculator;
   private  JMenuItem theItem[];
   private  JMenu allMenu[];
   private  JMenuBar bar;
   private  Scanner in;

   /*****************************构造函数***************************************/
   public Calcuate()
   {
      super( "计算器" );

      // get content pane and set its layout,create buttons
      container = getContentPane();
      container.setLayout( new BorderLayout( 5, 5 ) );
      calculator = new CreateButton( 0 );
      theItem = new JMenuItem[ 6 ];
      allMenu = new JMenu[ 3 ];
      bar = new JMenuBar();
      
      initMenu();
      container.add( bar, BorderLayout.NORTH );
      container.add( calculator, BorderLayout.CENTER );
      
      setSize( 375, 266 );
      setLocation( 250,250 );
      setVisible( true );

   } // end Calcuate
   
   /*****************************菜单栏****************************************/
   public void initMenu()
   {
   	  String menu[] = { "File", "Option", "More" };
   	  char men[] = { 'F', 'O', 'M' };
   	  String item[] = { "Copy", "Exit", "Normal", "Science","Statement","About..." };
   	  char ite[] = { 'C', 'E', 'N', 'S', 'T', 'A' };
   	  
   	  for( int i=0; i<6; i++ )
   	  {
   	  	theItem[ i ] = new JMenuItem( item[ i ] );
   	  	theItem[ i ].setMnemonic( ite[ i ] );
   	  	theItem[ i ].addActionListener( this );
   	  }
   	    	  
   	  for( int i=0; i<3; i++ )
   	  {
   	  	allMenu[ i ] = new JMenu( menu[ i ] );
   	  	allMenu[ i ].setMnemonic( men[ i ] );
   	  	allMenu[ i ].add( theItem[ i*2+0 ] );
   	  	allMenu[ i ].add( theItem[ i*2+1 ] );
   	  	bar.add( allMenu[ i ] );
   	  }
   }//end method initMenu
   
   
   /*****************************菜单事件监听**********************************/
   public void actionPerformed( ActionEvent event )
   {//按钮事件响应
   	 if     ( event.getActionCommand() == "Copy" )
   	 {
   	 	String get = calculator.currentDisplay();
   	 	Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new StringSelection(get), null); 
   	 }
   	 else if( event.getActionCommand() == "Exit" )
        System.exit(0);
   	 else if( event.getActionCommand() == "Normal" )
   	    changeLayout( 0 );
   	 else if( event.getActionCommand() == "Science" )
   	    changeLayout( 1 );
   	 else if( event.getActionCommand() == "Statement" )
   	 {
   	    JTextArea output = new JTextArea( 10,20);
   	    output.setLineWrap( true );//设置自动换行
   	    output.setEditable( false );
   	    JScrollPane scroll = new JScrollPane( output );
   	    scroll.setVerticalScrollBarPolicy( scroll.VERTICAL_SCROLLBAR_ALWAYS );
	    try
		{
	    	FileReader reader = new FileReader("statement.txt");
	        in = new Scanner(reader);
    	}	
    	catch(IOException e)
		{
			e.printStackTrace();
		}
		
	    while( in.hasNext() )
		{
			output.append(in.nextLine());
		}
   	    JOptionPane.showMessageDialog( Calcuate.this, scroll ,"Statement",JOptionPane.PLAIN_MESSAGE );
   	 }
   	 else if( event.getActionCommand() == "About..." )
   	 	JOptionPane.showMessageDialog( Calcuate.this, "Copyright by Keung","About",JOptionPane.PLAIN_MESSAGE );
   }////end method actionPerformed
   
   /*****************************改变计算器布局********************************/
   public void changeLayout( int flag )
   {
   	  if( flag ==0 )
   	  {   
   	      container.remove( calculator );
   	      calculator = new CreateButton( 0 );
   	  	  container.add( calculator, BorderLayout.CENTER );
          this.setSize( 375, 266 );
          this.setVisible( true );
   	  }
   	  else
   	  {
   	  	  container.remove( calculator );
   	      calculator = new CreateButton( 1 );
   	  	  container.add( calculator, BorderLayout.CENTER );
          this.setSize( 640, 330 );
          this.setVisible( true );
   	  }
   }//end method changeLayout
   
   public static void main( String args[] )
   {
      Calcuate application = new Calcuate();
      application.setResizable( false );//windows can not resizable
      application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   } 
   
} // end class Calcuate

⌨️ 快捷键说明

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