Tag: actionlistener

java中的内部类和本地内部类之间有什么区别?

如果一个类是一个本地内部类,这是否意味着它在另一个类的方法中,或者它是否意味着它只是在某个地方的另一个方法中定义。 例如,在下面的代码中,MenuListener是否被视为内部本地类? import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MenuDemo extends JFrame{ private Container c; private ImageIcon[] images = new ImageIcon[5]; private JLabel picture; private JPanel mainPanel; private JMenuBar menuBar; private JMenu menu; private JMenuItem bird,cat,dog,rabbit,pig; public MenuDemo() { super(“Menu Demo”); c = getContentPane(); c.setLayout(new BorderLayout()); mainPanel = new JPanel(); // Store the animal […]

如何在外部类中的ActionListeners中切换CardLayout中的面板

我在主类中有一个cardLayout,通过面板将Gui类添加到布局中,当按下Room1Button时,如何将主方法中的卡切换到Gui2卡 这是最好的方式来解决这个问题,任何帮助都会得到解决 主要方法 import javax.swing.*; import java.awt.*; class Main { CardLayout cl=new CardLayout(); GridBagConstraints gb=new GridBagConstraints(); JFrame frame=new JFrame(“Frame”); JPanel panel =new JPanel(); Gui1 g1= Gui1(); Gui2 g2= Gui2(); public Main() { panel.setLayout(cl); panel.add(g1, “1”); panel.add(g2, “2”); frame.add(panel); frame.pack(); frame.setVisible(true); cl.show(panel,”1″); //how would the actionlistner in the Gui1 class switch the layout to “2” cl.show(panel, […]

Java actionlistener action在不同的类中执行

我有两个类:主要的一个和一个叫做“Window”的类。 Window类中有一些按钮,是否可以让“主”类知道发生了什么? 简而言之,“Window”类中的按钮应该触发主类中的一些东西。 或者我应该在“Window”类中输入所有内容?

如何实现和保存多个actionListener

好的,我有一个包含多个Menu和MenuItem的类(让我们称之为:MenuBarClass)。 我想给每个MenuItem分配一个actionlistener,但是……而不是做类似的事情: menuitem_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {} }); menuitem_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {} }); menuitem_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {} }); // … menuitem_N.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {} }); 我认为我的代码更具有可持续性……更重要的是……我不会在一个巨大的ActionListener类中出现很多“if”,如: public void actionPerformed(ActionEvent e) { if (e.getSource().equals(menuitem_1)) { //do stuff.. } else if (e.getSource().equals(menuitem_2)) […]

将侦听器添加到Java / JavaFX中的变量,该变量在变量变量时被调用

我知道JavaFX中有听众,我确信Java。 但我很困惑如何实现它们。 我有一个在我的程序中更改的布尔变量。 每次更改布尔值时,我都希望运行一个函数myFunc()。 这可以轻松完成吗?

如何避免在Swing中耦合View和Controller

我最近遇到了一个试图在Swing中实现模型 – 视图 – 控制器的问题。 我有一个由子面板组成的GUI类,这些子面板由其他子面板组成。 现在,在其中一个子子面板中有一个JButton。 在这个JButton的ActionListener中,我想在控制器中调用一个方法。 为了做到这一点,我需要将控制器深入GUI的内部传递到JButton所在的子子面板。 然后在这个子子面板中,我需要将一个ActionListener附加到JButton,并通过调用我想在控制器中调用的方法来填充actionPerformed()。 我相信你们都看到了这个问题。 是否有任何好方法可以避免将控制器深入到GUI的内部。 我唯一的想法是让控制器成为一个单独的东西,将它与视图分离,但我听说单身人士通常是邪恶的。 关于这个问题的任何建议都将非常感激。 提前致谢!

JButton背景图片

您好我正在尝试为JButton实现Action侦听器,代码如下所示: ImageIcon imageForOne = new ImageIcon(getClass().getResource(“resources//one.png”)); one = new JButton(“”,imageForOne); one.setPreferredSize( new Dimension(78, 76)); one.addActionListener(myButtonHandler); 使用上面的JButton它看起来很好 当我为按钮添加特定值时,例如 ImageIcon imageForOne = new ImageIcon(getClass().getResource(“resources//one.png”)); //Check this one = new JButton(“one”,imageForOne); one.setPreferredSize( new Dimension(78, 76)); one.addActionListener(myButtonHandler); 它看起来像下图 有什么办法可以避免这种情况并设定价值。 感谢您的帮助。

在内部类(java)中访问局部变量

编译完代码后,我遇到了两个错误。 错误是: 1。 local variable input is accessed within inner class; needs to be declared final String name = input.getText(); 2。 local variable c_age is accessed within inner class; needs to be declared final Object child_age = c_age.getSelectedItem(); 这是我的代码: import javax.swing.*; import java.awt.event.*; public class GUI { public static void main(String[] args) { JFrame frame […]

将参数传递给ActionListener

public class start implements ActionListener { public void actionPerformed(ActionEvent aL) { method(arguments); } } method(arguments) { //stuff } 我想要一个JButton告诉程序使用参数“stuff”启动一个方法所以我把actionListener放在按钮上面但是actionListener没有访问参数,我不知道如何给它们(我看了oracle文档,无法弄清楚)。 我试过这个: actionPerformed(ActionEvent aL, stuff) { 这不起作用,我得到了错误 Compute.java:45: error: Compute.start is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener public class start implements ActionListener { ^ 我尝试放置一个@Override,但你不能根据编译器覆盖它。 那么,我如何将参数提供给ActionListener或者让方法在按钮之外,但只有在按下按钮后才开始工作,但是我在JFrame中使用JProgressBar按钮所在的按钮是使用方法作为计时器的东西所以最好将参数传递给actionListener

在一个简单的文本冒险游戏中集成Swing

我对Java中的一些中间概念相当新。 最近我制作了一款名为DazzleQuest的文本冒险游戏,完全在开发者控制台/终端中运行。 它涉及我的朋友作为角色所以我想向他们展示并通过将命令行的function和控制台的输出转移到由JTextArea组成的简单Swing界面以显示游戏的输出和JTextField来获得Java经验,使用ActionListener来处理来自用户的命令。 我的主要DazzleQuest类包含名为run()和handleCommand() ,我认为我需要与我的Frame类及其子类TextFieldHandler [扩展ActionListener ]进行集成。 总的来说,我想知道整合这些方法和类的最佳方法是什么。 我目前的尝试令人困惑,虽然我对如何使不同的课程和方法进行沟通有基本的把握,但这是暂时的。 对于冗长和缺乏特异性的道歉。 我会分享我的代码但不确定要提供多少和确切的内容。 如果您认为您可以回答我的问题但需要我的例子,请说明。 甚至伪代码作为答案将不胜感激。 谢谢! 理解这一点对我作为程序员的教育非常有帮助。 编辑:这是我完全在开发者控制台中运行的游戏版本的代码的简化示例。 这是我的主要类DazzleQuest : public class DazzleQuest { public void run() { listCommands(); for (;;) { StdOut.println(new StringBuilder(“You are in “).append(currentRoom.getName()).append(“.”).toString()); StdOut.println(new StringBuilder(“You can go to: “).append(currentRoom.listExits()).toString()); StdOut.print(“> “); handleCommand(StdIn.readLine()); StdOut.println(); } public void handleCommand(String line) { String[] words = line.split(” […]