Swing/AWT/SWT :: Wait For Mouse Click Before Running While Loop
Oct 7, 2013
I've got the game working just fine, but I don't like the way it starts playing the second you hit the "Run Last Class" button in Eclipse, and would really like to have the game start, then wait for the user to click a button before running the core WHILE loop. Everything is implemented in a single class, and here is the playGame method that starts the ball moving:
private void playGame(){
while (!gameover){
moveBall();
checkForCollisions();
}
All I want to do is pause before the WHILE loop until the users clicks the mouse button, nothing fancier than that! I've done quite a bit of reading, and it looks like ActionEvent may be the way to go, but I'm not clear on how to use it correctly in this scenario.
In the method mouseClicked(MouseEvent me) the co-ords of the click are obtained.
* if they are within the confines of the rectangle rect, console output System.out.println("inside box") is displayed * in either case the click co-ords are displayed in the console
I'm getting the co-ords of the mouse clicks but no message when the click is inside the box
import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; /* Experiment 04 was successful. So now (Experiment 05) I must try and see if I can identify mouse clicks that occur within the rectangle. */
public class AFrame extends Frame implements MouseListener { ARectangle rect; public AFrame(ARectangle rect) {
I have made a window using JFrame and on my JPanel I have added 3 components: 2 JTextFields ("field1" and "field2") and inbetween them a JButton ("switch"). My goal is to switch the value of field1 to field2 and vice versa when the JButton is clicked. I thought this ActionListener which I have added to my JButton would achieve my goal:
public void actionPerformed(ActionEvent e) { field2.setText(field1.getText()); field1.setText(field2.getText()); }
However, it changes the value of field2 into the value of field1 but not the other way around.
Projectsrccom.mypackageMyClass.java resourcesicon.pngmyexe.exe Right now I have to run the exe like this : - It has hardcoded the path of the exe :command = "cmd /c start /b cmd.exe /K "cd " + outputFolderPath + " && C:myfoldermyexe.exe " + "param1=value1 param2=value2 " ;
Process p = Runtime.getRuntime().exec(command); This works fine. But, When I package it as a jar I want to give a relative path to my resources folder. How can I make this happen?
I tried:File f = new File("resources/myexe.exe"); String path = f.getAbsolutePath(); but this "path" did not work.
Another way would be to extract the exe to a local path on the server, but there is a possibility that I could face permission issues.
I am having trouble with a mouse click method. In short I have a hexagon grid, and every time I want to click on one particular hexagon I want the color of the hexagon to change to blue(by default the color is grey). This part works, but when I go to click on another hexagon I want the color of the previous hexagon to change back to grey while at the same time changing the color of the current hexagon clicked to blue. So in other words, I only want one hexagon blue at a time. How might I do this?
I have a hexagon class for one particular hexagon, and a hexmap class for multiple hexagons. I know I should probably be handling mouse clicks in the hexmap since it deals with the whole thing. But I cannot say something like hexagon.setColor within a mouselistener in that class(it gives me a lot of issues). Here is some of my code :
public class Hexagons() public Hexagons(HexMap theMap, int mapRow, int mapCol, int width, int height) { this.map = theMap; this.row = mapRow; this.col = mapCol; this.width = width; this.height = height;
I am trying to create a gambling POS system and having problems with a method trying to get a value right after it was set. A jbutton sets another jframe visible which contains buttons. Upon action of the button, a value is set and the jframe is disposed.
private void btnPrizeActionPerformed(java.awt.event.ActionEvent evt) { PrizeSelling prize = new PrizeSelling(); prize.setVisible(true);//create prize selection window bin = getButton(); //gets what button is selected to load the correct prizes for correct game prize.DBconnect(bin);//sends bin number to prize loading method
[Code] ....
As soon as btnPrize is clicked it gets the total value of the prizes selected which of course is 0 because it is ran before it is set. How can I make it wait until the window is closed before continuing?
With a simple "Hello World" application, once the println is executed the application exits and the process goes away.
If a simple Frame application is executed, the Frame is displayed, the println is executed but the application does not exit.
public class Frame3 extends JFrame { Frame3() { setBounds(100,100,300,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String args[]) { new Frame3(); System.out.println("You are here"); } }
It isn't that Java is aware an object exists because if I create a basic non-swing, non-gui object it will exit right after the println.
Q1. What is it that causes Java NOT to exit after creating the JFrame? Q2. What type of object(s) when created will cause the application to continue running? Q3. What would I do if I wanted the println statement to be executed only after the JFrame was closed?
I'm running the code below which compiles ok using latest version of Java and on Sublime. The problem when it complies the output screen is blank and I can only see the text by adjusting the size of the box with my mouse - and then it colours in black. Code and screenshot below. Is there something wrong with the paint/graf part of the code?
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BackArray extends JFrame { int store[] = {2,6,4,8,34,67,19,99,10,12,89,68,45,37}; int xcoord = 100; boolean firsttime=true;
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??
So for a test i have a small array set as a jlist which is the contents of my jscrollpane, and it appears as if nothing is there until i adjust the window size by dragging it out or in... whats going on?
Just run the following code and move the mouse next to the text of the button and you will see exactly what I am talking about. Any way to prevent this continuous flash?
import java.awt.Dimension; import javax.swing.JButton; public class GUI { public static void main (String[] args) { javax.swing.JFrame frame = new javax.swing.JFrame(); javax.swing.JPanel panel = new javax.swing.JPanel();
I am working on a simple app that should emulate a desktop with some icons that you can drag around. I was instructed to use the MouseListener and MouseMotionListener. The icons should drag starting at the point where the mouse originally clicked down on it (ie not dragging from the top right corner).
I am drawing my icons to a jpanel, and I seem to be having two problems:The hitboxes are offThe icon is being dragged from the top right corner, despite having setup up a mouse offset at the beginning of the drag..Here are the relevant classes, the Desktop.draw() method is being called from my DrawPanel
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Desktop implements MouseListener, MouseMotionListener{ static DesktopIcon[] icons;
I am relatively new to java. . I cannot...(actually do not know) how to change the actionlistener (actionPerformed) after the second click in an array of JButtons. This is how the program performs right now.
On the 1st click on the grid, the border of the button clicked will change to 'blue' and another button will change its boarder to 'red'. on the next click the same action is performed.
What I need is to change action when the 'red' bordered button is clicked, lets say change the color of the buttons from the 'red' to the 'blue' buttons.(x 3 buttons).
The logic about how to perform the final result I think I can do on my own but my problem is how to change the action when the red bordered button is clicked.
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.
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.
I've recently decided to learn Java on my own using internet material such as forums, blogs and you tube. Ive never programed before but through some research I concluded that Java is going to be on the mid spectrum of difficulty as far as verbiage goes. I ma in no way implying that Java is easy but instead closer to spoken English that c++ if my research is correct. So here is my attempt at a basic program where I click a button and it will make an image appear. Not sure where Im falling short
package clicktoimage; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Clicktoimage extends JFrame { private JLabel label; private ImageIcon image;
I am trying to plot a graph and graph should display when JButton is clicked. To create data set, I am taking some value through JTextField and then created a chart and plotted it. I've got a problems: the chart doesn't refresh/update when I change the text field value.
public class Test2 extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private ChartPanel chartPanel; private JTextField textField_1; double a;
I read the oracle doc example, i understand the concept but still nothing is happening on show,first ,next method of CardLayout in ActionPerformed. Code is highlighted where I am facing problem.
I want to switch panel on click of a button and code for switching panels is written in update method (Which gets called from notify observer of another class as part of Observer pattern.
playGame in Panel 1 of class 1 calls another class (class 2)and data comes in update method of class 1(Observer interface).
Now for switching panels code is in gameControllerDataProcessing . I am not able to switch the panels when this functionality runs.
However if i dont call the unoGameController.playGame(playerFirst.getText(), playerSecond.getText() and directly call the update method or directly write the switching panel code . then it works fine.
I know how to do single selection, but I would like to do multiple row selection only by using CTRL + click without the option of dragging the mouse to select rows. So the user would have to hit ctrl + click each time to highlight additional rows.
I would like to get a checkbox within a table to fire an event when it's clicked rather. I gave tried putting in a TableModelListener but the the event only seems to trigger when I click on another column (as if the table is waiting to see if I will change my mind) before moving on.
I have also looked at the setValue of the TableModel itself.
Do I need to put an ActionListener on each checkbox or have I missed something ?