📄 calcuate.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 + -