Swing/AWT/SWT :: Same Code For Both ActionListener And MouseListener
Mar 8, 2014
is any simple way to apply the same code on both ActionListener and MouseListener, so that the same code is executed when the user either presses a JButton or presses Enter when a JTextField is focused.I know that I can define a method, while it is not preferred as I may use break; in my MouseListener.
A simple example:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TwoListener extends JFrame
{
[code]....
Although I can define a new method that prints out the three numbers, I have to add certain break; code in different cases. So I just wonder whether there is another way to do things like this.
I'm trying to build a program which sets a fill color for a rectangle. Each time the mouse is clicked the fill color changes according to the position of the mouse's X and Y. I succeeded to create a JFrame with a changing background according to the Mouse's position, but I can't seem to change the color of the rectangle (defined in MyPanel class).
I have a JList<Object> in my code (it actually takes JLabels) called imageList, and I've given it a custom CellRenderer using the following code:
cellRenderer = new DefaultListCellRenderer() { private static final long serialVersionUID = 1L; @Override public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
[Code] .....
However, when I click anywhere on the JList, nothing gets printed to the console, which suggests that the mousePressed() method isn't being invoked. I think it's a problem with the CellRenderer, because I have similar code elsewhere that works, the only difference being I don't use a custom CellRenderer.
I am trying to implement user input in my dice rolling program but I do not understand where I need to add the actionListener. What I want the program to do is allow the user to click on each roll button and have the output be between 1 and 6. I figured I can put it in the "main" class due to the size of the program but I would like to know the best way to go about adding the actionListener into a sub-class for practice purposes.Here is my code thus far:
package com.jprogs; import java.awt.*; import javax.swing.*; public class DiceGenerator extends JFrame { DiceRollEvent dice = new DiceRollEvent(); // create the roll buttons JButton roll_1 = new JButton("Roll #1"); JButton roll_2 = new JButton("Roll #2"); JButton roll_3 = new JButton("Roll #3"); JButton roll_4 = new JButton("Roll #4"); JButton roll_5 = new JButton("Roll #5"); // create output field for each roll
I was working on implementing the game Hunting the Wumpus [URL] .... for one of my projects in College. I've got the major parts of the game already implemented. I am working on creating a start screen right now. But I've run into a strange problem. In my code the main method that draws is the PaintComponent method in the private class HTWPanel. I need the Actionlistener to listen to the "QWES" keys while the state of the game is PlayState.Playing so that the user can enter the direction he's going in. If I have the following code for my paint component, the Actionlistener works fine.
public void paintComponent(Graphics g) { super.paintComponent(g); map.draw(g, 100); }
But when I try to add a start screen (by changing the background color and adding a label called "StartScreen"), the controller only listens to keys while the start screen is showing, not while the game is playing. I'm pretty sure this problem is due to some internal implementation of KeyAdacpter or ActionListener, but I'm not sure what.
public void paintComponent(Graphics g) { super.paintComponent(g); if (state == PlayState.START) { this.setBackground(Color.orange); this.add(startScreen); } else if (state == PlayState.PLAYING) { if (this.getBackground() != Color.WHITE) {this.setBackground(Color.WHITE);} map.draw(g, 100); }
I attached a screenshot of my main class, HuntTheWumpus, and a screenshot of what my game looks like so far. Each square is a different room in the Wumpus's lair. The black rectangles are door representing which direction you can go to. The rooms that are 2 squares or less from the wumpus are colored red. The hunter is represented by the black circle in the upper left hand square. His he can move left right up and down into different rooms with the "QWES" keys.
I was suspecting I had a jButton not working, so I added a console print to test. See below. When I click the button, the console doesn't display anything. Am I using the button wrong?
private void jButtonUpdateItemsMouseClicked(java.awt.event.MouseEvent evt) { System.out.println("click"); System.out.println(drawPreviousRectangle);//this is a boolean }
I have also tried the following with the same results (or lack of).
private void jButtonUpdateMajorDeckItemsActionPerformed(java.awt.event.ActionEvent evt) { System.out.println("click"); System.out.println(drawPreviousRectangle);//this is a boolean }
ActionPerformed and ActionListener on Netbeans...If I create a ComboBox on Netbeans using GUI design, then I right click over the Combobox I can find Events - Action - ActionPerformed... but I can't find ActionListener...
Are ActionPerformed and ActionListener the same?
or...
where is ActionListener on GUI Netbeans? Do I need to manualy write the ActionListener part?
I'm trying to acces my variable "cost" so when i press a button it prints the cost(for now) but the int value just prints 0
public class Holiday extends JFrame { private RoutinePanel routine; // A panel for routine charge checkboxes private JPanel HolidayPanel; // A panel for non-routine charges
implementing a swings application. I have a JFrame containing 2 JPanels : Top & Bottom panel. Top panel has a Jcombobox, Botton panel contain a Graph plot. On changing value in combo box, graph plot should get updated. I thought of adding actionlistener to Jcombobox. Not sure what to implement in its actionPerformed()
Can I add actionListener to a button component without creating a reference to it? Look at my code below:
public void init() { setBackground(Color.red); //Create the layout setLayout(new BorderLayout(20, 5)); //Add buttons add("North", new Button("Red")); add("South", new Button("Yellow")); add("East", new Button("Cyan")); add("West", new Button("Magenta")); add("Center", new Button("White")); }
Or should I just do the usual instance.addActionListener(this) like myButton.addActionListener(this)?
I am trying to write an application where if you click and hold down on 1 button and move the mouse to another button and release the text on the 2 buttons should be switched around.I have a print line so I can se the text are supposed to get switched around but it is just not happening in the GUI.
I attached all my code in case the flaw was to find somewhere else in the code, but the functionality I am working on is the lines 76 to 121.
I want to make a simple game and learn java by experimenting with it.I don't know how to increase a value by clicking it.I know how to make my objects move in my small game with mouse or keys, but I also got a score var that I want to increase per click. I can increase it over time, but after 2 hours of trying I couldn't progress any further.This is the piece of code I used, I imported the class, got getters n setters and all of that...
if(e.getButton() == MouseEvent.BUTTON3) hud.setScore(hud.getScore() + 555); Whenever I click I get an error, if I remember right "NullPointerException" is when something is missing I'm probably not targeting the value correctly... Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at com.tutorial.main.MouseListens.mouseClicked(MouseListens.java:22) at java.awt.Component.processMouseEvent(Unknown Source)
My program has a MainFrame(extends JFrame)class and BasePanel(extends JPanel) class,and many other panels.I had used Images with JLabel in BasePanel.My current panel in MainFrame is BasePanel.I had used MouseListener so that when I click on any of the label it should show Other panel in same MainFrame and hide the BasePanel.But I am getting some problem with that.When I click on the Label,It hides the BasePanel but do not show the new Panel(Dictionary Panel in my code). In short when label is clicked I want to make DictionaryPanel visible and BasePanel invisible,both in MainFrame. I am using the following code on Label:
//constructor of BasePanel class public BasePanel() { dict=new Dictionary(); mf=new MainFrame(); dictLabel.addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent arg0) {
According to what I read, "when programming in Swing, your GUI creation code should be placed on the Event Dispatch Thread (EDT). This will prevent potential race conditions that could lead to deadlock." (See below for code.)
Why is this? How could making a GUI lead to deadlock?
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); }
According to what I read, “when programming in Swing, your GUI creation code should be placed on the Event Dispatch Thread (EDT). This will prevent potential race conditions that could lead to deadlock.” (See below for code.)
Why is this? How could making a GUI lead to deadlock?
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); }
How do I get my GUI code into a GUI format? I wrote this put it will not make a GUI image.
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Ofelia_Inventory_4; import java.awt.*; import java.awt.event.*;
if the above code is to launch another application using java then how can I close/exit the same(another) application using java code once I press the exit button of my java app.
I am trying to make a JTree. I have used this guide :[URL]
Now when I call my Class with
TreeMainMenu tree = new TreeMainMenu(); JScrollPane MainMenu = new JScrollPane(tree);
I get only the default JTree..
I need to understand how I should build my code to call the class as JTree.
This is my code:
public class TreeMainMenu extends JTree { private DefaultMutableTreeNode top = new DefaultMutableTreeNode("TOP"); JTree tree; public JTree TreeMainMenu() { APNode(); tree = new JTree(top); tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); return tree;
I am messing around with a Swing application and am a bit stuck as to how to join the front and back ends.This is the code for the DataManager class which is responsible for loading and saving objects and interfacing with rest of the system. The data I need displayed comes from a .txt file in the applications directory. I need to show certain aspects of the data in the JComboBoxes in the GUI class.
Java Code:
package programdataapplication; import java.io.*; import java.util.*; public class DataManager {
I have a program where I have to open a file and then run a piece of code to do something with it. However since there are different files I want to run different pieces of code depending on the file. I have a JFileChooser setup and it works but I would like to have a something like an if else depending on the file extension.
How to deploy Java Swing application as windows software. I have tried the following to do this :
I have created jar file for my project after that created exe file using Launch4j and Advanced installer, exe file produced by both software are working fine but those are placing the jar file inside that exe file, My problem is any one who has that exe file can extract and view the source code by decompiling java class file. Is there any way to deploy java application without decompiling the code.