【问题标题】:Menu functionality for a basic paint app [closed]基本绘画应用程序的菜单功能[关闭]
【发布时间】:2015-04-18 22:50:56
【问题描述】:

我正在用 Java 设计自己的绘画应用程序。我设计了框架和菜单。

虽然我确实阅读了相关概念,但我在设计功能方面需要帮助。我只需要帮助定义 ActionListeners 的 actionPerfomed 方法来新建、打开、保存和退出。

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class MyPaintBrush {

    public static void main(String[] args) {
        JFrame frame = new JFrame("My Paint Brush");
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // Dimension to make the frame fit the full screen
        frame.setSize(screenSize);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        JMenuBar menu = new JMenuBar();
        frame.setJMenuBar(menu);
        JMenu menu_file = new JMenu("File");
        menu.add(menu_file);
        // Anonymous Objects:
        ActionListener listener_new = new ActionListener() {
            public void actionPerformed(ActionEvent e) {        

            }
        };
        ActionListener listener_open = new ActionListener() {
            public void actionPerformed(ActionEvent e) {        

            }
        };
        ActionListener listener_save = new ActionListener() {
            public void actionPerformed(ActionEvent e) {        

            }
        };
        ActionListener listener_exit = new ActionListener() {
            public void actionPerformed(ActionEvent e) {        

            }
        };
        JMenuItem item_new = new JMenuItem("New");
        item_new.addActionListener(listener_new);
        JMenuItem item_open = new JMenuItem("Open");
        item_open.addActionListener(listener_open);
        JMenuItem item_save = new JMenuItem("Save");
        item_save.addActionListener(listener_save);
        JMenuItem item_exit = new JMenuItem("Exit");
        item_exit.addActionListener(listener_exit);
        menu_file.add(item_new);
        menu_file.add(item_open);
        menu_file.add(item_save);
        menu_file.add(item_exit);
    }
}

【问题讨论】:

  • "I just need help..." 对于 stackoverflow 问题来说有点过于宽泛了。 具体来说你坚持什么?您上面的代码仅显示空的 ActionListeners 并没有显示您最好的诚意尝试解决这个问题 - 为什么不呢?请不要通过忽略或不首先尝试来欺骗自己。你没有什么可失去的,也没有什么可得到的。
  • 我只是一个初学者,这真的让我望而生畏。 :(
  • 我相信你,但同样,你至少尝试先解决它并没有什么可失去的。否则,我们怎么知道你被困在哪里?否则,您的问题本质上会变成“请有人为我编写代码”类型的问题。请不要让这种情况发生。
  • 我刚刚想出了如何关闭。通过将其插入到 actionListener 的主体中:System.exit(0);
  • 我的主要问题是:保存。我将添加一个组件并制作一些绘图,但我将如何保存它们?我刚刚听说了 BufferImage。它对我有帮助吗?\

标签: java swing graphics


【解决方案1】:

您可以创建绘图的BufferedImage,然后将BufferedImage 写入File

查看Screen Image 以获取一个既创建 BufferedImage 又将 BufferedImage 写入文件的类。

基本代码是:

BufferedImage bi = ScreenImage.createImage(yourComponent);
ScreenImage.writeImage(bi, "component-Image.jpg");

更难的部分实际上是创建绘图代码:) 祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多