我想用Swing实现单击按钮后能弹出一个新窗口!!这是我的代码!谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用Swing实现单击按钮后能弹出一个新窗口!!这是我的代码!谢谢!相关的知识,希望对你有一定的参考价值。

import javax.swing.*;
import java.awt.event.*;
public class Swing7 extends JFrame implements ActionListener

JButton jb=new JButton();

public Swing7()

this.setTitle("Java——");
jb.setText("确定");
jb.setMnemonic('a');
this.add(jb);
this.setBounds(200,300,250,300);
this.setVisible(true);
jb.addActionListener(new ActionListener()

public void actionPerformed(ActionEvent e)

JLable jl=new JLale();
this.setTitle("新窗口");
jl.setText("这是新窗口");
jl.setVerticalAlignment(JLable.CENTER);
jl.setHorizontaAlignment(JLable.CENTER);
this.add(jl);
this.setBounds(200,300,250,300);
this.setVisible(true);

);

public static void main(String args[])

Swing7 s=new Swing7();

// 修改后的代码。里面有几个地方需要注意一下:
// 1 实现接口必须要实现接口的方法
// 2 创建新窗口必须实例化新的JFrame或JDialog对象。
// 详细的请看代码注释吧。

import javax.swing.*;

import java.awt.Rectangle;
import java.awt.event.*;

public class Swing7 extends JFrame implements ActionListener
JButton jb = new JButton();

public Swing7()
this.setTitle("Java——");
jb.setText("确定");
jb.setMnemonic('a');
this.add(jb);
this.setBounds(200, 300, 250, 300);
this.setVisible(true);
jb.addActionListener(this); //由于Swing7实现了ActionListener接口,所以给jb添加的ActionListener就是Swing7实例。


public void actionPerformed(ActionEvent e) // 实现ActionListener接口的actionPerformed接口。
JFrame frame = new JFrame("新窗口");//构造一个新的JFrame,作为新窗口。
frame.setBounds(// 让新窗口与Swing7窗口示例错开50像素。
new Rectangle(
(int) this.getBounds().getX() + 50,
(int) this.getBounds().getY() + 50,
(int) this.getBounds().getWidth(),
(int) this.getBounds().getHeight()
)
);
JLabel jl = new JLabel();// 注意类名别写错了。
frame.getContentPane().add(jl);
jl.setText("这是新窗口");
jl.setVerticalAlignment(JLabel.CENTER);
jl.setHorizontalAlignment(JLabel.CENTER);// 注意方法名别写错了。
frame.setVisible(true);


public static void main(String args[])
Swing7 s = new Swing7();

参考技术A 首先你JLabel拼错了 其次你ActionListener里面不能用this 你这个this指的是谁

最重要的是你为什么要继承 ActionListener接口!

获悉点击了弹出窗口中的哪个按钮

【中文标题】获悉点击了弹出窗口中的哪个按钮【英文标题】:Get informed which button in popup window has been clicked 【发布时间】:2013-10-07 09:38:02 【问题描述】:

我正在尝试实现我的小型 android 应用程序的一项功能。 有一个图像按钮,当我单击它时会出现一个弹出窗口。根据用户单击该弹出窗口中的哪个按钮,该图像按钮应相应地更改其图像。 就像我在弹出窗口中单击 1 时一样,我应该通知按钮将图像更新为 1。

谁能告诉我怎么做?

【问题讨论】:

分享一些你试过的代码。你的弹出窗口在哪里,那个按钮在哪里?? 【参考方案1】:

您可以使用以下方法

public void setTabFor(Button btn) 

        for (Button button : btnArray) 
        if (button == btn) 

                if (button == button_one) 
                    Utils.setTabButton(R.drawable.left_selected, button_one);

                 else if (button == button_two) 

                    Utils.setTabButton(R.drawable.middle_selected, button_two);

                 else if (button == button_three) 
                    Utils.setTabButton(R.drawable.middle_selected, button_three);

                 else 
                    Utils.setTabButton(R.drawable.right_selected, button_four);

                

Utils类中的setTabButton用于设置backgrounddrawable:

public static void setTabButton(int drawable, Button... btn) 
        for (Button button : btn) 
            button.setBackgroundResource(drawable);
        
    

【讨论】:

我在 android 文档中找不到 setTabButton。有这个功能吗? 请查看我的帖子..我已将 setTabButton 作为 mu Utils 类中的静态方法。您可以按照同样的方法进行操作。【参考方案2】:

您应该为弹出窗口中的每个按钮分配一个ID。然后您必须实现一个listener,它将通知(并将 ID 传递给)您的对象(负责图像按钮)单击了按钮,并且您的对象将根据收到的 ID 更新图像按钮。

【讨论】:

所以,我应该实现 onClick 功能。但是,如何将此 ID 传递给该按钮?我应用哪种技术在此按钮和弹出窗口之间进行通信?【参考方案3】:

试试这个, 首先,您必须为您在应用程序中使用的所有图像按钮分配唯一的 ID。然后您在 ID 的帮助下单击哪个按钮,您可以根据自己的选择显示按钮。

希望它能帮助您并尽快解决您的问题。

【讨论】:

以上是关于我想用Swing实现单击按钮后能弹出一个新窗口!!这是我的代码!谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

c#如何单击按钮显示另一个窗体

JAVA_swing抖动窗口,要求在拖动窗口位置后能在新位置进行抖动!请看代码...

如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。

如何设置一个按钮以显示弹出窗口的不同结果? (JavaFX)

ROBOT Framework无法单击弹出接受按钮

java swing 编程中,如何实现点击按钮弹出新的窗口???