JAVA中的 您所在的位置:网站首页 kwyjibo是什么意思 JAVA中的

JAVA中的

2023-08-27 20:57| 来源: 网络整理| 查看: 265

本篇文章给大家介绍一下JAVA中的“->”的意思。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

在《JAVA核心编程》中,有一段这样的代码

import javax.swing.*; import java.awt.*; import java.io.File;   public class ImageViewer {     public static void main(String[] args){         EventQueue.invokeLater(() -> {             JFrame frame = new ImageViewerFrame();             frame.setTitle("ImageViewer");             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             frame.setVisible(true);           });     } } class ImageViewerFrame extends JFrame{     private JLabel label;     private JFileChooser chooser;     private static final int DEFAULT_WIDTH = 300;     private static final int DEFAULT_HEIGHT = 400;       public ImageViewerFrame(){         setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);           label = new JLabel();         add(label);           chooser = new JFileChooser();         chooser.setCurrentDirectory(new File("."));           JMenuBar menuBar = new JMenuBar();         setJMenuBar(menuBar);         JMenu menu = new JMenu();         menuBar.add(menu);           JMenuItem openItem = new JMenuItem("open");         menu.add(openItem);         openItem.addActionListener(Event -> {             int result = chooser.showOpenDialog(null);               if (result == JFileChooser.APPROVE_OPTION){                 String name = chooser.getSelectedFile().getPath();                 label.setIcon(new ImageIcon(name));             }         });           JMenuItem exitItem = new JMenuItem("exit");         menu.add(exitItem);         exitItem.addActionListener(Event -> System.exit(0));     } }

可以看到两处这样的代码

() -> {             JFrame frame = new ImageViewerFrame();             frame.setTitle("ImageViewer");             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             frame.setVisible(true);           } Event -> {             int result = chooser.showOpenDialog(null);               if (result == JFileChooser.APPROVE_OPTION){                 String name = chooser.getSelectedFile().getPath();                 label.setIcon(new ImageIcon(name));             }

Java8的lambda表达式。就是匿名函数。

上面那一段可以看成如下:

EventQueue.invokeLater(new Runnable() {             public void run() {                 JFrame frame = new ImageViewerFrame();                 frame.setTitle("ImageViewer");                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                 frame.setVisible(true);             }         });

下面一段可以看成:

openItem.addActionListener(new ActionListener() {             public void actionPerformed(ActionEvent e) {                 int result = chooser.showOpenDialog(null);                   if (result == JFileChooser.APPROVE_OPTION){                     String name = chooser.getSelectedFile().getPath();                     label.setIcon(new ImageIcon(name));                 }             }         });

只不过java自动帮你翻译了一下

推荐:《java视频教程》



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有