Swing/AWT/SWT :: ActionListeners In A Different Class From GUI?
Jul 15, 2014
I have 3 classes:
1 class which creates an instance of my GUI class class and initializes it which works fine.
1 class with all GUI stuff and another class which I'm trying to add all my actionsListeners to (which I can't seem to figure out).
Here is my GUI class:
public class GUI extends JFrame{
Container container;
CardLayout cl;
public GUI(){
super("Game Finder");
[Code] .....
Using my new class "AllActionListeners" I want it to have the bulk of the actionListener code, in order to make the program more manageable. However, after looking around I don't seem to be any closer to a solution. How to move the action listeners to a different class?
I have an application that reads through a ResultSet... while I'm reading that ResultSet, I am creating new JButtons..... Now I need to add an ActionListener to those JButtons...... but they are not visible to the actionPerformed method. So I thought I'd try to add an ActionListener as I created the buttons with the following code:
final File file = new File(rs.getString(3)); SKPictureButton spb = new SKPictureButton(url,file.getName()); spb.addActionListener ( new ActionListener() { public void actionPerformed( ActionEvent e )
[Code] ....
However this seems a bit excessive to me..... I don't think I really want to be creating a new ActionListener class for each JButton do I ? Is there a better way to make the JButtons created in this method visible to the actionPerformed method ? I'm just gettin' back into the "Swing" of things in Java.... haven't coded it for a while.
I'm trying to learn how to use ActionListeners. I want a button to hold a int and everytime it's pressed, the int gets + 2. Basically the button is a product and everytime it's pressed, you buy it, the int is your total, at least for that button. I want to have several buttons, each a different price, so maybe button 2 is +3 everytime. At the end then I want to add all the ints together for a total cost and then write that to a file. The only thing is I'm having trouble.
Here's my code
import javax.swing.*; import java.awt.*; public class Shop { public static void main(String [] args) { Frame frame = new Frame(); Button button = new Button(frame.getPanel());
[code]...
The problem is in my Button class, I think it's because my actionPerformed is set to void, but when I change it to int, it says my class must be abstract. For the moment I only have the info going to a label, this is just for testing. Whenever I run it, it says Juice is set to 0, probably because like I said earlier, it's set to void.
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 :
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();
This program should create a GUI that has 5 classes together on a grid layout. The problem that I am having is that the user input class has the input for kwh, hours, and gallons. I am having problems getting that information from the user input class to the totals class.
Add two radio buttons so that the user can select the gender (male or female). Also extend your Account class so that it contains the gender information as well. When the user presses “Submit”, your program should read the entered data and create an Account object that captures all the data in your interface. This is my code, what would I need to add in order to make a RadioButton?
/** * Orchestration class for Account */ public class AccountDemo { public static int numOfAccount = 3; public static void main(String [] args) { Account Accountholder1,Accountholder2,Accountholder3;
I have one question that suppose I am designing a Swing applications and I am using JFrame as Top level container.
So what is best
1)first Extends that class like
public class A Extends JFrame { //Do all stuff with Top Level container with gui }
2)Or design like this from this source
[URL] ....
package components; import java.awt.*; import java.awt.event.*; import javax.swing.*; /* TopLevelDemo.java requires no other files. */ public class TopLevelDemo { /** * Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread. */ private static void createAndShowGUI() { //Create and set up the window.
I have this panel in a nested class in the MainPanel class and it does not display, when I launch the applet, or more like, the two menus "LineColor" and "BackColor" from the nested class ColorPanel do not display .
I am getting datas from user and checking it with database (MS SQL ) if it fits it is sweatching to new window. In new window I need to use again my database so I need to add connecting datas again. I would like to get them from login window. How to do that? I know theory but when I am writting code nothing works. Here is working code for login panel :
/*import java.awt.BorderLayout; import javax.swing.*; public class Login extends JFrame { public String url; public static void main(String[] args) { Log frameTabel = new Log();
Is it good practice to create a inner class for layered panels with lots of components? In my opinion this makes the code easier to read and a lot less clustered.
Create a dnd (dungeons and dragons) character creator and back ground generator, have it display and run on a gui, to start with i decided to creator the gui as i go so i can see the progress, first i tried eclipse and windows builder, well after 1 day of reinstalling windows builder in about 5 different ways from multiple guides and sometimes getting it to partly work ...
After doing some more research I have figured out how to get the main program to display the gui . Heres what i have:
package com.mrgreaper; import javax.swing.*; public class MainWindow { private JPanel mainWindow; private JLabel playerlbl; private JLabel playerNamelbl;
[Code] .....
Now this works fine and the gui displays when the program is run but I can't change the text of any of the jlabels or textfield. If I try to do it in the main class i need to change them from private to public static but then in the form builder it says "cannot bind to static field *name of field*" but if i take static off then i cant change its value!
From what i understand this is because the window is an instance, so how to i change the value in that instance? I could put all my code in the one class, the one that creates the gui, but i really want it seperate, i would like the gui to update as the code runs... So how do i do it, how do i change the contents of jlabels on the fly, read the contents of text boxes on the fly etc....
I tried adding a getter setter
public void setCharFirst(JLabel charFirst) { this.charFirst = charFirst; } in the MainWindow.class
Then i tried to set it from my main function
MainWindow.setCharFirst("test");
but it cant access it as my main function is static and it is not now can i make it static...
public class ComparativoV3{ public void loadComparative(String path){ } public void compareDbs(){
[Code].....
how to set it up the private void CompareActionPerformed(java.awt.event.ActionEvent evt) as the ComparativeV3 main class, not giving it any argument, because the files are load from the arguments section & it reads diferent files with diferent arguments.
I'm trying to fill my jtable with an arraylist. The problem is the jtable is in an extended class and the arraylist in the mainGUI. Now how can I fill the jtable with the arraylist?
That's the arraylist in my MainGUI
BufferedReader in = null; ArrayList<String> data = new ArrayList<String>(); try { in = new BufferedReader(new FileReader("1.dat.txt")); String str; while ((str = in.readLine()) != null) { data.add(str);
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'm building a text editor. At this point, the editor should be able to read and write text and rich text. I create an instance of a RichTextEditor class that I created that extends a superclass I created (that extends JTextPane). Both my rich text and plain text classes extends the superclass I created. I use the this.read() to input my plain text from buffered reader. I think I need to use the read(fileinput stream, rtf document) method from type RTFEditorKit, but I cannot use that because it does not extend RTFEditorKit. I don't want to create a new class that extends RTFEditorKit because I need stuff from the JTextPane.
here are the classes on git... the super: TextEditorPane.java
The plaintext: TextEditorWrap.java
and the rich: RichTextEditor.java
I have fiddled with the read() method in different ways. In all cases, nothing loads. If I use the BufferedReader method, it doesn't give me an RTF, just the code for the RTF file.
How should I proceed? Do I create some sort of RTF interface and implement it?
I have defined a subclass of DefaultMutableTreeNode Class in java :
public AccountsTreeNode extends DefaultMutableTreeNode { }
in this class I have a recursive method called getsorted(ArrayList list_) , which accummulated the list_.
In this method, I have to call this.children() which returns the children of the node, but the children are all of type "DefaultMutableTreeNode". I have to call the method getsorted on these children,but since the getsorted is a mehtod of AccontsTreeNode, it gives me runtime cast error.
Should I convert children to AccountTreeNode type by overriding the children() method?
I have my paint application, i use the following mouse event to draw my shapes (mousePressed, mouseReleased, mouseDragged). Now after the user paint a circle for example, he must be able to drag the shape; to be able to do this. i think i must again implement the different mouse Events. I have done it and the drag is not working. How can i achieve this. can we implement multiple (mousePressed, mouseReleased, mouseDragged) in the same java class??
I am working on a project where i need to show a year value in a class that extends JSpinner.Its working just fine but when i try to set an alignment value for the editor textfield it all falls apart and i know im missing something really critical here but i can't see or find it all i know is that i can't make a proper reference to the textfield component in the editor i use in the correct way or aproach.
public class JNumberSpinner extends JSpinner { private String actionCommand; private boolean isEnabled; private int startValue; private int columns; private int alignment; private SpinnerNumberModel model; private JSpinner.NumberEditor numEditor; private JFormattedTextField jTxtEditorView;
this code won't compile because selected row must be declared as final because of it being defined outside the window listener. Is their anyway around this? If I make it final the first time that the variable is called it keeps it starting value until the GUI is closed.
butEdit.addActionListener (new ActionListener () { @Override public void actionPerformed (java.awt.event.ActionEvent evt) { int selectedRow = table.getSelectedRow (); final String [] values = custTableModel.getRowValues (selectedRow);
I have a swing jFrame set up with a control group which contains 3 radio buttons.
When one is clicked it sends its label to a jtextfield in a different class i have code parsing text by a term
Java Code:
Scanner s = null; try { s = new Scanner(new BufferedReader(new FileReader("/Stage_One.txt"))); s.useDelimiter("*"); String total = (s.next()); Pattern p = Pattern.compile("[]+");
[Code] ....
I just need to know how to access the jframe variables (textfields, panels and such) so i can use their inputs in code to filter a text file.
I am trying to create a GUI interface in swing which consists of four classes: a GUI class, which creates a main JPanel, a label, and a JList, which it takes from the second class, a MovesList class that contains a JList and the stuff needed to interface with it. It also has a main class, which basically just creates an object of the GUI class for the main window, and an Other class from which I would like to be able to add an item to the JList. I created methods in the MovesList class to get each component (like getMoveslist, or getMovesListScrollPane), which I then used to create the JList in the GUI class. I also created an addMove method so that I can add an item to the JList from any class through a MovesList object. However, this addMove method only works when called from the GUI or MovesList classes -- it does nothing when I collect from the Other class.
Here is my code:
//Main class public class TestProject { public static void main(String[] args) { GUI mainWindow = new GUI(); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
[Code] ....
When I run this code, I get a window with a JLabel that says "Moves," and a JList that contains five elements -- test 1-test 5, but not a sixth "test from other class." ( using the add move method ) However, when I click on the window, the addMove method is also called, and successfully adds "test 6" to the list.
I have two classes involved in this portion. CheckIn_Search
(class #1) is my main UI and I am collecting search information from the user in a jPanel form. When they click "Search" it passes the search criteria to a method that contacts a web service and gets the results. These results are passed to coSearchResults
(class #2) that opens a jFrame and jTable (in modal format, over the main window created by CheckIn_Search.
The user selects a row in the table and that selection data is passed back to coSearchResults to populate a new jPanel form. When the data is passed from coSearchResults, I want to close its window, hide the first jPanel in CheckIn_Search and make the second jPanel visible. To accomplish this, I created a method in CheckIn_Search that simply hides/shows the panels (it will do more later).
I instantiate and call the method in CoSearchResults as part of the button click event. The problem is, it doesn't work. The panels are unaffected and there are no errors. I've put in break-points and it goes into the method.. Here is the coSearch_Results code.
Here is am retrieving the jtable row id and using the first value in the row to get the data from the table model as there is more data than what is displayed in the table. I'm sending that whole row of data to the method that changes visibility.
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed // TODO add your handling code here: int rowNum = jTable1.getSelectedRow(); String coNum = jTable1.getValueAt(rowNum,0).toString(); String[] text;