如何让 JButton 打开不同的框架?

卡马尔·伊尔凡

我创建了 2 个 JButton,但都打开了同一个文件,我如何让第二个按钮打开另一个文件...................... …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ……………………

//Starting Page

import javax.swing.*;
import java.awt.event.*;
import java.awt. *;
import java.io.*;


   public class AddressBook implements ActionListener     // Create a new class Address Book
{
    JFrame Start=new JFrame("Address Book");     // Set name of Frame
    JButton Open;              // Set new button
    JButton Second;
 {
      Open=new JButton("OPEN");     // set name of button
      Second=new JButton("Second");
      Start.setSize(500,600);       // set size of frame
      Start.add(new JLabel(new ImageIcon("backgroundforlab.jpg")));      // add background picture
      Start.setVisible(true); 
      Start.setLayout(null);
      Start.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);  
      Start.getContentPane().add(Open);                           //Make button visible
      Start.getContentPane().add(Second); 
      Open.setBounds(100,385,295,88);  
      Second.setBounds(50,160,150,44);                           // set size of button
      Open.addActionListener(this);
      Second.addActionListener(this);

 }

   public void actionPerformed(ActionEvent e)
{
      Start.dispose();              // When button is clicked close frame and open mainMenu 
      mainMenu A=new mainMenu();    
}

   public static void main(String ag[])
  {
      AddressBook A=new AddressBook();          // run class AddressBook
  }  


}
疯狂程序员

你可以...

ActionListener为您的按钮使用单独的s

Open.addActionListener(new OpenActionListener());
Second.addActionListener(new SecondActionListener());

您需要提供ActionListeners的实现作为附加类

这可能是首选方法之一,因为它将操作的功能/职责隔离到单个类,但它确实创建了一堆小类。

你可以..

改用匿名类...

Open.addActionListener(new ActionListener() {
    @Overrride
    public void actionPerformed(ActionEvent e) {
        //...
    }
});

这和之前的思路基本一样,只是不需要单独的类来管理

你可以...

使用actionCommand属性来标识按钮

Open.setActionCommand("open");
Second.setActionCommand("second");

//...

public void actionPerformed(ActionEvent e) {
  String command = e.getActionCommand();
  if ("open".equals(command)) {
      //...
  } else if ("second".equals(command)) {
      //...
  }
}

如果您有许多重复操作的按钮(如菜单和工具栏按钮),这很好

你可以...

使用source属性来标识按钮

public void actionPerformed(ActionEvent e) {
  Object source = e.getSource();
  if (source == open) {
      //...
  } else if (source == second) {
      //...
  }
}

这仅在ActionListener有权访问按钮的实际引用时才有效这使得它的使用受到限制,特别是因为有更好的解决方案可用

你还应该看看:

更多细节和想法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用JButton打开文件

来自分类Dev

如何在GUI中使Jbutton打开新的GUI窗口?

来自分类Dev

如何从 JButton 打开另一个表单

来自分类Dev

如何让 JButton 每次单击时显示 2 种不同的模式?

来自分类Dev

JButton打开新的JFrame?

来自分类Dev

使jbutton打开和关闭

来自分类Dev

如何创建JButton?

来自分类Dev

如何设置JButton的大小?

来自分类Dev

如何设置JButton的大小?

来自分类Dev

如何修复JButton位置

来自分类Dev

不同的Jbutton偏斜的含义

来自分类Dev

使用JButton打开新的JFrame

来自分类Dev

如何使JButton垂直填充BoxLayout?

来自分类Dev

如何删除JButton上的图标?

来自分类Dev

如何使这个JButton起作用?

来自分类Dev

如何避免选择多个Jbutton

来自分类Dev

如何制作JButton大小的图片?

来自分类Dev

如何使 JButton 不可编辑

来自分类Dev

如何更改禁用的 jbutton 的颜色?

来自分类Dev

如何模拟特定JButton在JButton数组中的移动

来自分类Dev

如何用Java中的现有JButton创建JButton数组?

来自分类Dev

如何使用另一个JButton关闭JButton

来自分类Dev

如何用Java中的现有JButton创建JButton数组?

来自分类Dev

为什么JButton打开一个空框架而不是调用PMotion类?

来自分类Dev

JButton字体在不同PC上显示不同

来自分类Dev

如何在cardlayout中使用JButton

来自分类Dev

如何保持JButton的透明度(java)

来自分类Dev

如何在JButton之间创建间距?

来自分类Dev

如何用ImageIcon完全填充JButton的表面?