| 作者:佚名 文章来源:本站原创 点击数: 更新时间:2007-3-26 23:03:59 |
|
申明:以下代码由Qdieyou原创,任何转载请注明出处,否则追究责任,谢谢!
由于本人所学的教材是英文版的“How to java program”所以,以下代码部分注释也采用英文形式,相信大家是看得懂的。代码的注释已经写得很清楚,这里就不多做解释了。
程序运行界面大致如下:

代码如下:
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Notepad extends JFrame{ private final Color colorvalues[] = { Color.black, Color.blue, Color.red, Color.green }; //定义颜色数组 String styleNames[] = { "Bold", "Italic" };//定义风格数组 String fontNames[] = { "宋体", "华文行楷", "隶书" };//字体数组 String[] sizeString = new String[30];//字号数组 int[] size = new int[30];//与字号数组对应的字号整数,用于设置文字大小 private JRadioButtonMenuItem colorItems[], fonts[]; private JCheckBoxMenuItem styleItems[]; private JTextArea displayText;//定义文本编辑区 private ButtonGroup fontGroup, colorGroup;//字体组,跟字色组 private int style;//字体风格 private JScrollPane scroll;//为文本编辑区提供滚动条 private String selectText = "";//存放文本编辑区中选中的文本内容 private JComboBox styleBox,fontBox,sizeBox;//工具栏 private JPanel toolPanel;//存放工具栏 private int rowNumber = 0;
// set up GUI public Notepad() { super( "记事本" );//标题 //初始化字体大小数组 for(int i = 0 ; i<size.length;i++){ sizeString{i} = "" + (i+5) * 2; size{i} = (i+5)*2; } Container container = getContentPane(); container.setLayout(new BorderLayout() ); //统计行数
toolPanel = new JPanel(); JLabel label1 = new JLabel("字体名称"); toolPanel.add(label1); fontBox = new JComboBox(fontNames); fontBox.addItemListener( //事件处理 new ItemListener(){
public void itemStateChanged(ItemEvent event){ if( event.getStateChange() == ItemEvent.SELECTED){ displayText.setFont( new Font( fontNames[fontBox.getSelectedIndex()], displayText.getFont().getStyle(), displayText.getFont().getSize() ) );
} } } ); toolPanel.add(fontBox);//添加 JLabel label2 = new JLabel("字体风格"); toolPanel.add(label2); String style_name[] = {"常规","倾斜","粗体","倾斜加粗体"};//字体风格 styleBox = new JComboBox(style_name); styleBox.addItemListener( //事件处理 new ItemListener(){
public void itemStateChanged(ItemEvent event){ if( event.getStateChange() == ItemEvent.SELECTED){ if(styleBox.getSelectedIndex()==0) style = Font.PLAIN; if(styleBox.getSelectedIndex()==1) style = Font.ITALIC; if(styleBox.getSelectedIndex()==2) style = Font.BOLD; if(styleBox.getSelectedIndex()==3) style = Font.ITALIC+Font.BOLD; displayText.setFont( new Font( displayText.getFont().getName(), style, displayText.getFont().getSize() ) );
} } } ); toolPanel.add( styleBox );
JLabel label3 = new JLabel("字号"); toolPanel.add(label3); sizeBox = new JComboBox(sizeString); sizeBox.addItemListener( new ItemListener(){
public void itemStateChanged(ItemEvent event){ if( event.getStateChange() == ItemEvent.SELECTED){ displayText.setFont( new Font( displayText.getFont().getName(), displayText.getFont().getStyle(), size[sizeBox.getSelectedIndex()] ) );
} } } ); toolPanel.add(sizeBox); container.add( toolPanel, BorderLayout.NORTH );
// set up File menu and its menu items JMenu fileMenu = new JMenu( "文件(F)" ); fileMenu.setMnemonic( 'F' );
// set up About... menu item JMenuItem aboutItem = new JMenuItem( "关于(A)..." ); aboutItem.setMnemonic( 'A' ); fileMenu.add( aboutItem ); aboutItem.addActionListener(
new ActionListener() { // anonymous inner class
// display message dialog when user selects About... public void actionPerformed( ActionEvent event ) { JOptionPane.showMessageDialog( Notepad.this, "模拟记事本程序\ncopyright@2005_Qdieyou——魏逢一", "关于", JOptionPane.PLAIN_MESSAGE ); rowNumber = displayText.getRows(); JOptionPane.showMessageDialog(null,""+ rowNumber); }
} // end anonymous[1] [2] [3] 下一页
| 上网速度更快更爽、更安全下载使用Firefox火狐浏览器
|
|
|
| 网站技术录入:admin 责任编辑:admin |
|
上一篇网站技术: 没有了 下一篇网站技术: 用Java实现的汉诺塔程序代码 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
|
|
|
|