为了在JavaSwing中创建一个简单的文本编辑器,我们将使用一个JTextArea、一个JMenuBar,并向其中添加jMenus,然后添加JMenuItems。所有菜单项都有actionListener来检测任何动作。 将有一个菜单栏,它将包含两个菜单和一个按钮:
null
- 文件菜单
- 打开 :此菜单项用于打开文件
- 拯救 :此菜单项用于保存文件
- 打印 :此菜单项用于打印文本区域的组件
- 新 :此菜单项用于创建新的空白文件
- 编辑菜单
- 切 :此菜单项用于剪切选定区域并将其复制到剪贴板
- 复制 :此菜单项用于将选定区域复制到剪贴板
- 粘贴 :此菜单项用于将剪贴板中的文本粘贴到文本区域
- 关 :此按钮关闭框架
我们使用了文件读取器和文件编写器来获取有关Java文件读写的更多信息。请点击以下链接:
使用的方法:
方法 | 解释 |
---|---|
切() | 从文本区域中删除选定区域并将其存储在剪贴板中 |
复印件() | 从文本区域复制选定区域并将其存储在剪贴板中 |
粘贴() | 从文本区域中删除选定区域并将其存储在剪贴板中 |
打印() | 打印文本区域的组件 |
有关JSwing组件的更多方法,请参阅:
创建简单文本编辑器的程序: 要创建简单的文本编辑器,请执行以下操作:
- 首先,我们将创建一个名为“编辑器”的框架f,应用金属外观,并在其中设置海洋主题。
- 我们将添加一个文本区域和一个菜单栏,其中包含三个菜单文件、编辑和关闭。
- “文件”选项有4个菜单项:新建、打开、保存和打印。
- “编辑”有三个菜单项:剪切、复制和粘贴。我们将在所有菜单项中添加一个动作监听器(使用addActionListener()函数)来检测任何动作。
- 我们将使用add()函数将菜单项添加到菜单栏中,并使用addJMenuBar()函数将菜单栏添加到框架中。
- 我们将使用add函数将文本区域添加到框架中,使用setSize(500500)函数将框架大小设置为500500,然后使用show函数显示框架。
以下是菜单功能的调用方式:
- 选择剪切、复制、粘贴和打印菜单项时,将调用文本区域剪切()、复制()、粘贴()和打印()的内置函数。
- 选择“保存”菜单项时,将打开文件选择器,选择文件后将显示保存对话框。文件写入器(缓冲写入器)将文本区域的内容写入文件,并关闭文件写入器和缓冲写入器。
- 选择“打开”菜单项时,将打开文件选择器,选择文件后将显示打开对话框。文件读取器和缓冲读取器将读取文件,并将文本区域的文本设置为文件内容。
- 如果选择“新建”菜单项,文本区域的文本将设置为空白。如果选择了“close”(关闭)菜单项,则使用isVisible(假)功能关闭框架。
节目:
JAVA
// Java Program to create a text editor using java import java.awt.*; import javax.swing.*; import java.io.*; import java.awt.event.*; import javax.swing.plaf.metal.*; import javax.swing.text.*; class editor extends JFrame implements ActionListener { // Text component JTextArea t; // Frame JFrame f; // Constructor editor() { // Create a frame f = new JFrame( "editor" ); try { // Set metal look and feel UIManager.setLookAndFeel( "javax.swing.plaf.metal.MetalLookAndFeel" ); // Set theme to ocean MetalLookAndFeel.setCurrentTheme( new OceanTheme()); } catch (Exception e) { } // Text component t = new JTextArea(); // Create a menubar JMenuBar mb = new JMenuBar(); // Create amenu for menu JMenu m1 = new JMenu( "File" ); // Create menu items JMenuItem mi1 = new JMenuItem( "New" ); JMenuItem mi2 = new JMenuItem( "Open" ); JMenuItem mi3 = new JMenuItem( "Save" ); JMenuItem mi9 = new JMenuItem( "Print" ); // Add action listener mi1.addActionListener( this ); mi2.addActionListener( this ); mi3.addActionListener( this ); mi9.addActionListener( this ); m1.add(mi1); m1.add(mi2); m1.add(mi3); m1.add(mi9); // Create amenu for menu JMenu m2 = new JMenu( "Edit" ); // Create menu items JMenuItem mi4 = new JMenuItem( "cut" ); JMenuItem mi5 = new JMenuItem( "copy" ); JMenuItem mi6 = new JMenuItem( "paste" ); // Add action listener mi4.addActionListener( this ); mi5.addActionListener( this ); mi6.addActionListener( this ); m2.add(mi4); m2.add(mi5); m2.add(mi6); JMenuItem mc = new JMenuItem( "close" ); mc.addActionListener( this ); mb.add(m1); mb.add(m2); mb.add(mc); f.setJMenuBar(mb); f.add(t); f.setSize( 500 , 500 ); f.show(); } // If a button is pressed public void actionPerformed(ActionEvent e) { String s = e.getActionCommand(); if (s.equals( "cut" )) { t.cut(); } else if (s.equals( "copy" )) { t.copy(); } else if (s.equals( "paste" )) { t.paste(); } else if (s.equals( "Save" )) { // Create an object of JFileChooser class JFileChooser j = new JFileChooser( "f:" ); // Invoke the showsSaveDialog function to show the save dialog int r = j.showSaveDialog( null ); if (r == JFileChooser.APPROVE_OPTION) { // Set the label to the path of the selected directory File fi = new File(j.getSelectedFile().getAbsolutePath()); try { // Create a file writer FileWriter wr = new FileWriter(fi, false ); // Create buffered writer to write BufferedWriter w = new BufferedWriter(wr); // Write w.write(t.getText()); w.flush(); w.close(); } catch (Exception evt) { JOptionPane.showMessageDialog(f, evt.getMessage()); } } // If the user cancelled the operation else JOptionPane.showMessageDialog(f, "the user cancelled the operation" ); } else if (s.equals( "Print" )) { try { // print the file t.print(); } catch (Exception evt) { JOptionPane.showMessageDialog(f, evt.getMessage()); } } else if (s.equals( "Open" )) { // Create an object of JFileChooser class JFileChooser j = new JFileChooser( "f:" ); // Invoke the showsOpenDialog function to show the save dialog int r = j.showOpenDialog( null ); // If the user selects a file if (r == JFileChooser.APPROVE_OPTION) { // Set the label to the path of the selected directory File fi = new File(j.getSelectedFile().getAbsolutePath()); try { // String String s1 = "" , sl = "" ; // File reader FileReader fr = new FileReader(fi); // Buffered reader BufferedReader br = new BufferedReader(fr); // Initialize sl sl = br.readLine(); // Take the input from the file while ((s1 = br.readLine()) != null ) { sl = sl + "" + s1; } // Set the text t.setText(sl); } catch (Exception evt) { JOptionPane.showMessageDialog(f, evt.getMessage()); } } // If the user cancelled the operation else JOptionPane.showMessageDialog(f, "the user cancelled the operation" ); } else if (s.equals( "New" )) { t.setText( "" ); } else if (s.equals( "close" )) { f.setVisible( false ); } } // Main class public static void main(String args[]) { editor e = new editor(); } } |
输出:
注: 以上程序可能无法在联机IDE中运行,请使用脱机编译器。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END