【发布时间】: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。它对我有帮助吗?\