JScrollPane和JTextArea,JMenuBar、JMenu和JMenuItem之间的组合关系

package menuta;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import ioutil.*;
public class DemoMenusAndTextAreas extends JFrame{
      main
    public static void main(String[] args){
      JFrame theFrame = new DemoMenusAndTextAreas();
      theFrame.setSize(350, 250);
      theFrame.setVisible(true);         
   }
    Model
    // none
View
// Create controls
   private JTextArea taDisplay     = new JTextArea("Greetings!\n");
   
   private JMenu     muFile        = new JMenu("File");      
   private JMenuItem miFileNew     = new JMenuItem("New");
   
   private JMenu     muEdit        = new JMenu("Edit");       
   private JMenuItem miEditAppend  = new JMenuItem("Append");
   private JMenuItem miEditReplace = new JMenuItem("Replace");
  public DemoMenusAndTextAreas(){
    // Set title
      setTitle("Menus and TextArea Demo");
      // Create container and layout
      Container contentPane = getContentPane();
      EasyGridLayout layout = new EasyGridLayout();
      contentPane.setLayout (layout);
  // Set constraints and add controls to container
      JScrollPane spDisplay = new JScrollPane(taDisplay);
      layout.setConstraints(spDisplay  , 1,1,1,1);
      contentPane.add(spDisplay);
 //
1.组合关系,JScrollPane组件的使用,add其它组件后,使它成为JScrollPane的属性,所以容器添加JScrollPane对象即可。
   // Create the menu bar and add menus and menu items
      JMenuBar menuBar = new JMenuBar();
     this.setJMenuBar(menuBar);/
/this是theFrame对象,和contentPane是有区别的。
      menuBar.add(muFile);
      menuBar.add(muEdit);
      muFile.add(miFileNew);
//2.组合关系,将JMenu作为JmenuBar的属性,然后将JMenuItem作为JMenu的属性,能够使得JMenuItem作为MenuBar的属性。
      muEdit.add(miEditAppend);
      muEdit.add(miEditReplace);

      // Specify listeners
      miFileNew.addActionListener(new FileNewListener());
      miEditAppend.addActionListener(new EditAppendListener());
      miEditReplace.addActionListener(new EditReplaceListener());
      this.addWindowListener(new MyWindowAdapter());   
   }
     Controller
// File-new listener
   private class FileNewListener implements ActionListener{
      public void actionPerformed(ActionEvent e){
         taDisplay.setText("");//
新建文件是利用JComponentText对象setText(" ")空,或实现replace文件内容的功能。
      }
   }
 // Edit-append listener
   private class EditAppendListener implements ActionListener{
      public void actionPerformed(ActionEvent e){
         taDisplay.append("Appending one more line.\n");//
利用JTextArea的append方法实现后面添加。
      }
   }
 // Edit-modify listener
   private class EditReplaceListener implements ActionListener{
      public void actionPerformed(ActionEvent e){
         taDisplay.setText("Setting a new line of text.\n");//setText覆盖。
      }
   }
    // Window listener
   private class MyWindowAdapter extends WindowAdapter{
      public void windowClosing (WindowEvent e){
         System.exit(0);
      }
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较简单的Java GUI程序,以下是代码: ```java import javax.swing.*; import java.awt.*; public class TextEditor extends JFrame { private JTextArea textArea; public TextEditor() { setTitle("我的记事本"); setSize(500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建菜单栏 JMenuBar menuBar = new JMenuBar(); // 创建文件菜单 JMenu fileMenu = new JMenu("文件"); JMenuItem newMenuItem = new JMenuItem("新建"); JMenuItem openMenuItem = new JMenuItem("打开"); JMenuItem saveMenuItem = new JMenuItem("保存"); JMenuItem exitMenuItem = new JMenuItem("退出"); fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.addSeparator(); fileMenu.add(exitMenuItem); // 创建编辑菜单 JMenu editMenu = new JMenu("编辑"); JMenuItem cutMenuItem = new JMenuItem("剪切"); JMenuItem copyMenuItem = new JMenuItem("复制"); JMenuItem pasteMenuItem = new JMenuItem("粘贴"); editMenu.add(cutMenuItem); editMenu.add(copyMenuItem); editMenu.add(pasteMenuItem); // 创建查看菜单 JMenu viewMenu = new JMenu("查看"); JMenuItem zoomInMenuItem = new JMenuItem("放大"); JMenuItem zoomOutMenuItem = new JMenuItem("缩小"); viewMenu.add(zoomInMenuItem); viewMenu.add(zoomOutMenuItem); // 将菜单添加到菜单栏 menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(viewMenu); // 将菜单栏添加到窗口 setJMenuBar(menuBar); // 创建文本编辑区域 textArea = new JTextArea(); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); // 创建滚动条面板 JScrollPane scrollPane = new JScrollPane(textArea); // 将滚动条面板添加到窗口 add(scrollPane, BorderLayout.CENTER); setVisible(true); } public static void main(String[] args) { new TextEditor(); } } ``` 这段代码会创建一个窗口,里面包含了一个菜单栏和一个可编辑的文本区域。菜单栏中包含了三个菜单:文件菜单、编辑菜单和查看菜单,每个菜单中包含了若干个菜单项。文本区域使用了多行多列的文本框,并且添加了滚动条面板,以便于显示大量的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值