Swing/AWT/SWT :: How To Pass On Object To Event Listener
Sep 22, 2014
I’m teaching myself Java. I am a fairly proficient programmer in other languages, but this is the first OO language I’m doing.I have a question that is a bit hard to summarize. Or it should be: how can I pass on an object (or variable) to an event listener?
I am writing an application in which you can play a Sudoku game. I have separated the “logic” or the “model”(the classes with Sudoku data structures and methods to manipulate them) from the presentation (the view and the controller).The main method starts off as follows:
SudokuModel model = new SudokuModel();
SudokuView viewController = new SudokuViewController(model);
The first line creates class for the logic and the second line creates the class for the view and the controller. Since the view and the controller need access to the business logic, the model is passed on to the ViewController class.The SudokuViewController class creates the user interface in Swing and it handles the user input. For the user input I have created a number of listeners, like this:
table.addKeyListener(this);
Now these listeners need access to the model since they update it. However, as far as I’m aware the only parameter passed on to an event listener is the event itself. So these event listeners do not have direct access to the model, even though it is passed on to the constructor of the class SudokuViewController.
To circumvent this, I made model2 an attribute (variable) of the class SudokuViewController. The constructor of the class sets this variable as follows:
model2 = model;
Now the event listeners have access to model2, which they can manipulate.This works. However, I think it is an ugly solution, introducing an additional object (model2). I’d like to pass on the object named model to the event listener, but this doesn’t seem to be possible.
View Replies
ADVERTISEMENT
Jun 11, 2014
I am trying to find either some references to point me on the right track with passing an object with all of it's properties still in tact after it's been created. Currently I am trying to do this through an interface but it seems to just create a new object everytime without the properties. Example below :
import java.util.ArrayList;
import java.util.List;
public interface TPerson{
//public Person p = null;
}
class Thrower {
Person p;
[code]....
When I implement the interface on the other objects as soon as I call the setP method shown above it seems to just create a new one even though I pass the object to the method I want to use.
View Replies
View Related
Feb 28, 2015
java.awt.Component is an abstract class, and it's direct Sub-classes are Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, Text Component
So, when I use addXListener(mylistenerclass m);//which is a method of Component class which object is holding the list of all listeners, for a particular Event Source?
I am under the assumption that - there is an Event Source Object(possibly static) for every Event Source type(mouse, keyboard etc) that holds a list of destinations(classes that implements their listener interface) - added to the the object via addXListener method. When an event happens(mouse click, drag etc) the Event Source Object creates an Event Object and send it to all the destinations. Is my assumption correct? I can't seem to find the location or declaration of Event Source Object and the list where it stores it's registered destinations.
View Replies
View Related
Mar 26, 2015
I want to do something when the treeitem collapsed or expanded,but both clicked the tree item icon and double clicked tree item can collapsed or expanded the tree item.so how to listen collapse and expand event?
View Replies
View Related
Jun 18, 2014
We are doing a Timeline project, So this is what i want to do:
Pressing a "New Event" button opens the New event window where you are supposed to write input in three fields, name, date, and information. There is also a button "Create" that when i press that button, i want to take all the input from the fields and save/send it to our database, and go back to the timeline GUI. With this, i want a new event object to be created(in this case i have done several shapes in a group) so basically a new group i want to be added. All the information is suppose to be taken from the database right after i create it.
I'm pretty stuck on how i should solve this, for the moment have a group called event that i add on the canvas. First thing that pops up in my head is a void method that draws the event, or maybe a temporary array.. P
package application;
import controllers.CreateEventController;
import application.EventPop;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Cursor;
[Code] ....
View Replies
View Related
Mar 10, 2015
I have an application that uses an object that is declared globally for the class. Within a method that is triggered by a user event, it creates a new object and assigns it to this global object declaration. My question is, when the object is overwritten multiple times by the user selecting the button that calls this method, will the older instances be garbage collected or is there still a reference to them? Is there any downfall to this logic and if so what would be a solution.
View Replies
View Related
Apr 12, 2014
I am not able to get the arraylist object on jsp. Below is my code.
public class DisplayArticle extends SimpleTagSupport
{
String path;
List<Article> articleList=new ArrayList<Article>();
public String getPath() {
return path;
[code]....
View Replies
View Related
Jan 7, 2014
When I hit the url at the first time my call goes to the spring controller and sets the userDetails objects in the modelAndView.addObject("userDetails", userDetails.getUserDetails()) and returns the userDetails.html page. if I click any link in the same page i want to pass same (userDetails) object thru javascript or jquery and calls the another(controller) method and returns the same (userDetails.html) page.
It means how can I pass the java object thru javascript or jquery and calls the controller. If I get the same object in my controller i can avoid calling the db again.
View Replies
View Related
Aug 9, 2014
Essentially, the code I want is:
public void randomCreate(ParentObject obj){
int x = random(0-4); //pseudo
int y = random(0-4); //pseudo
create new ParentObj(x,y);
}
ParentObject is actually abstract, so you would only ever pass one of its children objects to it, and a child object of that type would be created. It seems like there should be a way to pass a type, rather than an object, and then create an instance later down, but I don't know if that is actually possible, or if it is poor programming style.
View Replies
View Related
May 25, 2014
I have a Jbutton in my application named as SUBMIT,on clicking SUBMIT the text of jButton changes to ABORT. I wish to apply enter key listener on both the SUBMIT and ABORT button in my applcation, however I am not able to get the text of the button in key listener,so that i can apply my code based on the current text of Button.
View Replies
View Related
Feb 22, 2014
I'm using Eclipse with the Window Builder Pro plugin to create a Java program. I noticed that when I had Eclipse create an action listener for a combobox in a Swing GUI it created an AWT listener.
Did I choose the wrong type of listener? I want my code to use the Swing components because I understand that they are more portable.
View Replies
View Related
Jun 26, 2014
I have two different classes called Login (in the package View) and RegButtonListener (in the package Controller). I want to use the MVC pattern.
Login creates a GUI for login. I used NetBeans GUI Builder to create it.
In the class RegButtonListener there is the code for the click of the buttons, then various listeners of the GUI.
Now I want to close the login frame at the click of a button so I want to use the dispose() method.
If I had all the code (GUI code and code of the listener) in the same file, close the frame would be easy enough to do because this.dispose(). But in my case I have two different classes.
I also have a second problem.
In Login class (in the packege View) I have included the line :
regButton.addActionListener(Controller.RegButtonListener).
However, Netbeans tells me an error "package regButton does not exist. <identifier> expected". Why does he consider regButton a package? How can I fix these two problems?
How do I do then?
Below is the code of the two classes.
Login class.
public class Login extends javax.swing.JFrame {
/** Creates new form Login */
public Login() {
initComponents();
[code]....
View Replies
View Related
Feb 19, 2014
In the book we made a GUI which has 2 buttons, a label and a panel (the panel is a subclass of JPanel). What the program does is the following: When I press one of the two buttons, in the panel there is a rectangle that changes its color. When I press the other button it has to change the text on the label. Now the problem is that when I start the program, the FIRST time I press the button on which the label must change, this also changes the color in the rectangle, which it should not (I also noticed that when i FIRST click the rectangle shifts a little bit to the left). After that the program works fine.
Here is my code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TwoButtons{
JFrame fr;
JButton labelButton;
JButton colorButton;
JLabel label;
[Code] ....
View Replies
View Related
Jul 14, 2014
I have three JComboBoxes. When the user selects an entry in the first JComboBox the entries in the second are set. For this I use an Action extends AbstractAction which is bound to the first JComboBox.
I have also bound an Action to the second JComboBox.
Problem: this also fires when the entries on the second JCombox are added which leads to a Nullpointer.
I need a Listener which only reacts to user input, and does not react when the model of the JComboBox is changed.
View Replies
View Related
Jun 2, 2014
JMenuItem blueChoice = new JMenuItem("Blue");
blueChoice.addActionListener(new InnerMenuListener(){
public void actionPerformed(ActionEvent e){
String buttonCommandString = e.getActionCommand( );
if (buttonCommandString.equals("Red"))
redPanel.setBackground(Color.RED);
else if (buttonCommandString.equals("White"))
whitePanel.setBackground(Color.WHITE);
else if (buttonCommandString.equals("Blue"))
bluePanel.setBackground(Color.BLUE);
else
System.out.println("Unexpected error.");
}
});
Can a method in an anonymous inner class ever be private? why or why not?
View Replies
View Related
Feb 22, 2015
I have buttons created on a frame and then I register the listener from a controller in a controller-view relationship.
When I click the button on the face, the action never executes for some reason. I thought maybe there was a problem registering the listener but I can call the buttons doclick() method and it executes as it should. Perhaps I'm overlooking something really obvious here but I can't see it.
btnEight = new JButton( "8" );
// btnEight.addActionListener( controller );
btnEight.setBounds( 212, 90, 41, 23 );
frame.getContentPane().add( btnEight );
and then I add the listener
public void setController( ActionListener theController ) {
Component[] components = frame.getContentPane().getComponents();
for ( Component component : components ) {
if ( component instanceof JButton ) {
JButton button = ( JButton ) component;
button.addActionListener( theController );
}
}
again, when i click the button nothing happens. but if i add the following code
btnEight.doclick()
the actionPerformed invokes in theController as I intended.
You can see the entire project on GitHub so you can see the full context. The controller class contains the listener and the view class contains the buttons.
View Replies
View Related
Nov 11, 2014
I need to take the value of what's typed in my JTextField, and once the submit button is clicked, I want to add that string to my JComboBox list items.
Depending which RadioButton they selected, I need to put the team in HOME or AWAY teams, and so on and so on, until they continue clicking submit.
View Replies
View Related
Jan 25, 2007
I need to change the value only when I press one of the arrows in a JSpinner component.How can I add a listener to the arrow buttons. I tried ChangeListener but it was not what I needed
View Replies
View Related
Jun 3, 2014
Is there some equivalent of the Swing TreeWillExpand-listener for TreeView?
In my particular case I want to check whether some constrains are set to show some children before they will populated in the view.
View Replies
View Related
Feb 22, 2014
I think will be easy for me start with a GUI and then make things happens when the user clic on Buttons.Is there a good book about Event driven development on Java?
View Replies
View Related
Jan 30, 2015
I have the following listener on a tableset of names:
ListSelectionListener singleListener=new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
int row=e.getFirstIndex();
if (row==previousRow) {
row=-1;
[Code] .....
The println shows that getValueIsAdjusting is called 4 times when I click a single selection from the list. Is this normal behavior? If so how do I determine which call to really use. If not, where can I look to see why it is being called 4 times on a single click?
View Replies
View Related
Dec 3, 2014
I was developed a simple GUI, in that it requires modification of jtextfield content while JComboBox item selected and vice-versa. I was used itemListener on JComboBox and Document Listener on JTextField. It was gives exception while running the code. Because one listener source effected by another one..
Exceptions are like this:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification
at javax.swing.text.AbstractDocument.writeLock(Unknown Source)
at javax.swing.text.AbstractDocument.replace(Unknown Source)
at javax.swing.text.JTextComponent.setText(Unknown Source)
at ronanki.swing.pcahostsimUI$5.itemStateChanged(pcahostsimUI.java:368)
at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
[Code] ......
View Replies
View Related
Jan 1, 2015
Which event is generated when a scrollbar is update?
View Replies
View Related
May 3, 2014
I'm having difficulty implementing keyboard and mouse event handlers at the same time for a program designed to notify the user when a key has been pressed or a mouse button clicked.
I can make and understand a program that does one or the other, but when I try to combine them, either the keyboard only or the mouse only works.
here is the code:
import java.awt.Color;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import java.awt.event.MouseListener;
[Code] ....
View Replies
View Related
Feb 18, 2014
I'm trying to can make right button event to show a popup of copy/paste in a jtable but I put these code and doesn't works:
public class UI implements ActionListener, DocumentListener, MouseListener{
private JFrame ventana;
private JTable table;
private JPanel panel;
private JScrollPane tableScrollPane;
[Code] .....
View Replies
View Related
Oct 11, 2014
I have a bunch of textboxes in a panel and I wanted to perform the same code when the user clicks into a textbox (select all the text in it). Right now I've started adding a focusgained listener to each textbox like this:
private void textField1FocusGained(java.awt.event.FocusEvent evt) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
textField1.selectAll();
}
});
}
[Code]...
Is there a way I can have one focusgained listener that all the textfields can point to but have it pick the right textfield in the textFieldx.selectAll();?
View Replies
View Related