按钮按下事件
Button Press Event
我做了一个简单的文件菜单。单击文件后,您会看到一个名为 "New" 的子菜单。单击它会弹出一个对话框。对话框上有一个用户输入文本字段和一个按钮。我对如何制作一个事件感到困惑,当你点击按钮时,文件选择器出现。
这是我的代码:
--NewFileBox.java--
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class NewFileBox implements ActionListener{
JTextField projectName = new JTextField();
JButton saveFile = new JButton();
public NewFileBox(){
saveFile.addActionListener(this);
}
final JComponent[] inputs = new JComponent[]{
new JLabel("Project Name"),
projectName,
new JButton("Save")
};
public void actionPerformed(ActionEvent E){
if(E.getSource() == saveFile){
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
}
}
}
--Window.java--
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class Window implements ActionListener{
//Create SubMenus
private JMenuItem item1 = new JMenuItem("New...");
private JMenuItem item2 = new JMenuItem("Open");
private JMenuItem item3 = new JMenuItem("Exit");
//Import Class
public NewFileBox nfb = new NewFileBox();
public Window(int w, int h, String title){
JFrame f = new JFrame(title);
JMenuBar menubar = new JMenuBar();
//Menu Options
JMenu menu = new JMenu("File");
//Add ActionListener to SubMenu
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
menubar.add(menu);
f.setJMenuBar(menubar);
//Add SubMenus to File
menu.add(item1);
menu.add(item2);
menu.add(item3);
f.setSize(w, h);
f.setVisible(true);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent E){
//FILE
if(E.getSource() == item1){ //New
JOptionPane.showMessageDialog(null, nfb.inputs);
}
if(E.getSource() == item2){ //Open
JFileChooser fc = new JFileChooser("Open A File");
fc.showOpenDialog(null);
}
if(E.getSource() == item3){ //Exit
System.exit(0);
}
}
}
--Game.java--
public class Game {
public static void main(String args[]){
new Window(640, 480, "Autumn Engine");
}
}
此外,如果知道如何在 he/she 按下创建按钮(我稍后会制作该按钮)以及用户输入他们的内容时如何创建用户保存的新文件,那就太好了项目名称;将名称添加到 FileChooser 中的文件名。
我知道这是非常多的信息。如果您有任何问题,请告诉我。
谢谢。
同样,您有两个 JButton,一个添加了 ActionListener 但未对其进行任何操作,另一个是您尝试使用的 JButton,但未向其添加 ActionListener。解决方案:去掉第二个按钮。
JButton saveFile = new JButton("Save"); // Put text into the button!
public NewFileBox(){
saveFile.addActionListener(this);
}
final JComponent[] inputs = new JComponent[]{
new JLabel("Project Name"),
projectName,
// new JButton("Save") // Get rid of this!
saveFile // add this!
};
我做了一个简单的文件菜单。单击文件后,您会看到一个名为 "New" 的子菜单。单击它会弹出一个对话框。对话框上有一个用户输入文本字段和一个按钮。我对如何制作一个事件感到困惑,当你点击按钮时,文件选择器出现。
这是我的代码:
--NewFileBox.java--
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class NewFileBox implements ActionListener{
JTextField projectName = new JTextField();
JButton saveFile = new JButton();
public NewFileBox(){
saveFile.addActionListener(this);
}
final JComponent[] inputs = new JComponent[]{
new JLabel("Project Name"),
projectName,
new JButton("Save")
};
public void actionPerformed(ActionEvent E){
if(E.getSource() == saveFile){
JFileChooser fc = new JFileChooser();
fc.showOpenDialog(null);
}
}
}
--Window.java--
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class Window implements ActionListener{
//Create SubMenus
private JMenuItem item1 = new JMenuItem("New...");
private JMenuItem item2 = new JMenuItem("Open");
private JMenuItem item3 = new JMenuItem("Exit");
//Import Class
public NewFileBox nfb = new NewFileBox();
public Window(int w, int h, String title){
JFrame f = new JFrame(title);
JMenuBar menubar = new JMenuBar();
//Menu Options
JMenu menu = new JMenu("File");
//Add ActionListener to SubMenu
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
menubar.add(menu);
f.setJMenuBar(menubar);
//Add SubMenus to File
menu.add(item1);
menu.add(item2);
menu.add(item3);
f.setSize(w, h);
f.setVisible(true);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent E){
//FILE
if(E.getSource() == item1){ //New
JOptionPane.showMessageDialog(null, nfb.inputs);
}
if(E.getSource() == item2){ //Open
JFileChooser fc = new JFileChooser("Open A File");
fc.showOpenDialog(null);
}
if(E.getSource() == item3){ //Exit
System.exit(0);
}
}
}
--Game.java--
public class Game {
public static void main(String args[]){
new Window(640, 480, "Autumn Engine");
}
}
此外,如果知道如何在 he/she 按下创建按钮(我稍后会制作该按钮)以及用户输入他们的内容时如何创建用户保存的新文件,那就太好了项目名称;将名称添加到 FileChooser 中的文件名。
我知道这是非常多的信息。如果您有任何问题,请告诉我。
谢谢。
同样,您有两个 JButton,一个添加了 ActionListener 但未对其进行任何操作,另一个是您尝试使用的 JButton,但未向其添加 ActionListener。解决方案:去掉第二个按钮。
JButton saveFile = new JButton("Save"); // Put text into the button!
public NewFileBox(){
saveFile.addActionListener(this);
}
final JComponent[] inputs = new JComponent[]{
new JLabel("Project Name"),
projectName,
// new JButton("Save") // Get rid of this!
saveFile // add this!
};