Java swing program
Windows-based Java program that can perform currency conversion for the user. The program will give the user the ability to enter the desired amount to convert, the currency type to convert from and to and a button to invoke the conversion. The program should also provide the user a separate dialog to set the conversion rates between each possible currency combination. The program should handle conversions between dollars, pounds and euros.
The program must offer the user three ways to submit the conversion request: a button, a menu item (described below), or hit the Enter key after entering the amount in the transfer text field.
The menu item method must display a new dialog with all necessary fields to accomplish the conversion. When complete, the menu item window must disappear and its results will be displayed on the main window.
The text field indicating the amount to convert must allow the user to input the values in units and cents. Also, all display values must be in units and cents.
A separate menu item that opens a dialog must be provided to set the conversion rates. The default values when the program starts should be randomly generated between 1.00 and 2.00. Reverse conversions should be the inverse of the opposite conversion.
The program must also provide a button to select an amount to convert that is randomly generated between 1,000 and 2,000 in units and cents.
Edited by: chota on Sep 21, 2008 7:38 PM
you could charge for homework assignments :)) // I would
dont know why its in the swing section tho... no mention in the assignment task of GUI, just email a CLI application IMHO
does the poster want a pass / credit / distinction ?? the code will vary and so will the cost....
Similar Messages
-
Placing a telnet session within a java swing program
I was wondering if there was a way to maybe anchor a telnet session into a JPanel within a Java Swing program. Most of my users end up running a telnet session while using my Swing Program and I was hoping to find a way to bring the two together. If this is possible could someone point me in the right direction (like an online resource) that might show me how to do this.
You could use sockets and a TextArea and build your own simple telnet application.
Socket tutorial: http://java.sun.com/docs/books/tutorial/networking/sockets/index.html -
Creating variables in a java swing program useing event
This is my code:
*Old School Calculator
*@Collin Doering
*Version 2.00
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class OSC {
private static void createAndShowGUI() {
int first = 0;
int second = 0;
int third = 0;
int fourth = 0;
int fifth = 0;
int answer;
System.out.println ("Calculations");
System.out.println ("-------------");
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("OSC");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button1 = new JButton("1");
button1.setMnemonic(1);
button1.addActionListener
new ActionListener() {
public void actionPerformed (ActionEvent e) {
first = 1;
//This is when the error says "Local variable first is accesed from
with in inner class; needs to be declared final;
System.out.println ("first = ");
JButton button2 = new JButton("2");
button2.setMnemonic(2);
button2.addActionListener
new ActionListener() {
public void actionPerformed (ActionEvent e) {
System.out.println ("Second = ");
JButton buttonx = new JButton("x");
buttonx.addActionListener
new ActionListener() {
public void actionPerformed (ActionEvent e) {
System.out.println ("answer: ");
JPanel panel = new JPanel(new GridLayout(10,10));
panel.add(button1);
panel.add(button2);
panel.add(buttonx);
frame.getContentPane().add(panel);
panel.setBorder(BorderFactory.createEmptyBorder(
30, //top
30, //left
10, //bottom
30) //right
frame.pack();
frame.setVisible(true);
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
I am trying to create variables so i can make a calculator (right now i only have buttons 1, 1 and multiply). //This is when the error says "Local variable first is accesed from
with in inner class; needs to be declared final; then when i declare it final it says <identifier expected>. Could some one please help me. thanx.Please post code within code tags (press the "code" button).
Why are you using an inner class? Simplify:
public class OSC implements ActionListener {
button1.addActionListener( this );
public void actionPerformed( ActionEvent e ) {
if ( e.getSource() == button1 ) . . . -
How many threads can be created in a java swing program?
At first, I intend to use Timer to create a 2D plot repeatedly after a certain number of milliseconds. This is for an animation. However, I discover that it takes a lot of time to generate each 2D plot frame ( about 700 milliseconds on a 1.13 MHz computer, this is a complicated plot requiring a lot of computations). So I think I should use SwingWorkers, that means a new thread for each generated graph image. There might be 1000 images to be created, and thus there might be thousands of threads in my programs. I would like to know if there is any limitation on the number of threads generated in a program so that it will be safe, or is it ok to generate as many threads as you want, as long as you follow strictly the syntax of creating threads?
I would be thankful if someone can give me some advice.as there is no restriction in the Language Specification (http://java.sun.com/docs/books/jls/second_edition/html/memory.doc.html#28457) i would think it's theoretically indefinit. of course, it has a maximum because of your memory. ;-)
-
Problem in java swing programming
Hello
I am developing one project. I which i put one main menu from which user choose various options.
One of the option is associating students with the batch.
As user choose this option, it opens one frame in which user get one comobox containing list of batches that are already announced in the system.
As user choose any of these batch number, i want that frame shows the one JLabel control and one JList control shows list of candidates registered for the course for which selected batch has announced.
For that i put one penal in the frame which implements ActionListener interface and registered this panel as the ActionListener of this batch combobox. As user choose any of the batch from this combobox in the actionPerformed method i call repaint method.
In the paintComponent method of panel i add two control one JLabel and one JList .
But my panel or frame does not show these control.
What should i do.
I also want to know i develop projects in JDK1.2 will it runs on JDK1.3 or JDK1.4
Because i was using JDK1.2 but it had deleted and i now i am unable to get that version.Here is some good advice. Take time to download a new version of the SDK, it will help you do things more quickly.
To your problem, I believe it is a matter of switching components within the application. To switch components, you need to use the container.remove(Component c) method, and then use container.add(Component c)Finally you need to validate the container and repaint it to show your newly added component. So in all
container.remove(somecomponent);
container.add(anothercomponent);
container.validate();
container.repaint();Hope this helps one way or the other
ICE -
Need help for connecting Ms Acces with java Swing in Mac OS
Hi all,
i need to connect to Ms Access in MAc os through my java swing program.
Is it possible for accessing Ms access through dsn in Mac OS.
If Possible which driver shall i use for Establishing Connection with MS Access in Mac OS.
Suggestion is needed urgently.
Can anybody help me out regarding this..
Thanks in advance.
Regards,
sreandif I don't find a better solution I'll try your 2nd option but what do you mean by "combo" update?
My understanding is to simply insert the OS 10.5 installation CD, reinstall the OS and the just keep updating it via the OS SSoftware update panel and stop untill I see the scary Java 8 update. Is that what you meant?
While you can do it that way, the combo update picks up operating system updates through a collection of releases. When dealing with operating system upgrades, I've found using the combo updates to be more reliable than Software Update, as sometimes Software Update doesn't apply updates correctly, and weird things can happen. Doesn't happen often though, thankfully.
So the OS X 10.5.5 Combo update contains all updates between 10.5.0 and 10.5. The 10.5.8 combo update contains the updates from 10.5 thru 10.8. Here are the updates:
10.5 combo update: http://support.apple.com/kb/DL692
10.8 combo update: http://support.apple.com/kb/DL866
If you go down the combo path, repair permissions before and after doing each update. Then do Software Update for any other non-OS X updates, and don't apply the Java Update 8. -
How Hard is it to program in Java.Swing
Hi
I wanted to program using java.swing component but i don't have any idea where i should start.
I have been programming in java using java.Awt
and i can do simple array programing.
So how hard is it, and Where should i start learning java.swing. Ps I don't know anything about Swing, I don't even know what it is.
Thanks youHi
As the previous guy said it is quite easy, and that link should teach you the basics. What I want to remind you of is that Swing uses up more memory when run. But it also have a few nicer extra goodies that make coding a little bit easier. Have fun with it.
Here are a few more sites
<http://manning.spindoczine.com/sbe/>
<http://java.sun.com/docs/books/tutorial/uiswing/>
Ciao -
In program written with Java Swing, I can't input Chinese
In program written with Java Swing, I can't input Chinese.
But if I change my language first, then change the input method tu U.S, open the Java Swing application, finally I can input Chinese. I want to know how to fix this bug.
My OS is Mac OS X 10.6.8.
At the JDK version 1.6.0_29, I can input Chinese friendly in Java Swing applications. But after 1.6.0_31, I can't do it anymore. The input methods can input Chinese in other non Java Swing applications so the problem must create by JDK or JRE's Swing part. What's the different between 1.6.0_29's Swing and 1.6.0_31's ? Why ? I heard that Java Swing apps not support Chinese input methods seens 2009... Why haven't fix these yet?Chazza wrote:
Perhaps you need to change your keyboard layout in Xorg?
https://wiki.archlinux.org/index.php/Ke … ard_layout
Thanks for your answer!
I have tried to change the keyboard layout from "en" to "cn", but it is still not work.
The input method coin on the righttop is right when I change the method.But it still output english even I use ibus-pinyin.There is not a box for my choosing chinese words.
Last edited by Dilingg (2015-05-15 16:18:43) -
How to use java api while java programming especially using javase and java swing?
i need help for java api for undo, redo, htmleditorkit,editorkit.
in my project i have to use java swing for desktop application but, i need help for how to implement and how to retrieve java api.
please reply with example or code..i need help for java api for undo, redo, htmleditorkit,editorkit.
in my project i have to use java swing for desktop application but, i need help for how to implement and how to retrieve java api.
please reply with example or code..
You find examples and code by searching the internet, not by using forums.
Start with The Java Tutorials - it has trails for the bulk of the Java functionality.
See the trail 'How to Write an Undoable Edit Listener'
http://docs.oracle.com/javase/tutorial/uiswing/events/undoableeditlistener.html
You learn by DOING - not by reading. Actually DO the tutorial example and try to understand WHAT it does and HOW it does it.
Then search for other tutorial trails that are of interest. -
What is difference between C# Gzip and Java swing GZIPOutputStream?
Hi All,
I have a Java swing tool where i can compress file inputs and we have C# tool.
I am using GZIPOutputStream to compress the stream .
I found the difference between C# and Java Gzip compression while a compressing a file (temp.gif ) -
After Compression of temp.gif file in C# - compressed file size increased
while in java i found a 2% percentage of compression of data.
Could you please tell me , can i achieve same output in Java as compared to C# using GZIPOutputStream ?
Thank a lot in advance.797957 wrote:
Does java provides a better compression than C#?no idea, i don't do c# programming. and, your question is most likely really: "does java default to a higher compression level than c#".
Btw what is faster compression vs. better compression?meaning, does the code spend more time/effort trying to compress the data (slower but better compression) or less time/effort trying to compress the data (faster but worse compression). most compression algorithms allow you to control this tradeoff depending on whether you care more about cpu time or disk/memory space. -
PL/SQL and Java Swing interface
Everybody in this forum knows that Oracle is the best database around
with many functionalities, stability, performance, etc. We also know
that PL/SQL is a great language to manipulate information directly
in the database with many built in functions, OOP capability,
transaction control, among other features. Today an application that
manipulates information, which needs user interface, requires components
to be developed using different technologies and normally running in
different servers or machines. For example, the interface is done using
a dynamic HTML generator like JSP, PHP, PL/SQL Web Toolkit, etc.
This page is executed in an application server like Oracle iAS or
Tomcat, just to name two, which in turn access a database like Oracle to
build the HTML. Also rich clients like Java applets require an intermediate
server to access the database (through servlets for example) although
it is possible to access the database directly but with security issues.
Another problem with this is that complexity increases a lot, many
technologies, skills and places to maintain code which leads to a greater
failure probability. Also, an application is constantly evolving, new
calculations are added, new tables, changed columns. If you have an
application with product code for example and you need to increase its
size, you need to change it in the database, search for all occurrences
of it in the middle-tier code and perhaps adjust interfaces. Normally
there is no direct dependency among the tier components. On another
issue, many application interfaces today are based on HTML which doesn't
have interactive capabilities like rich-client interfaces. Although it
is possible to simulate many GUI widgets with JavaScript and DHTML, it is
far from the interactive level we can accomplish in rich clients like
Java Swing, Flash MX, Win32, etc. HTML is also a "tag-based" language
originally created to publish documents so even small pages require
many bytes to be transmitted, far beyond of what we see on the screen.
Even in fast networks you have a delay time to wait the page to be
loaded. Another issue, the database is in general the central location
for all kinds of data. Most applications relies on it for security,
transaction and availability. My proposal is to use Oracle as the
central location for interface, processing and data. With this approach
we can create not only the data manipulation procedures in the database,
but procedures that also control and manage user interfaces. Having
a Oracle database as the central location for all components has many
advantages:
- Unique point of maintenance, backup and restore
- Integrated database security
- One language for everything, PL/SQL or Java (even both if desired)
- Inherited database cache, transaction and processing optimizations
- Direct access to the database dictionary
- Application runs on Oracle which has support for many platforms.
- Transparent use of parallel processing, clusters and future
background technologies
Regarding the interface, I already created a Java applet renderer
which receives instructions from the database on how to create GUI
objects and how to respond to events. The applet is only 8kb and can
render any Swing or AWT object/event. The communication is done
through HTTP or HTTPS using Oracles's MOD_PLSQL included in the Apache
HTTP server which comes with the database or application server (iAS).
I am also creating a database framework and APIs in PL/SQL to
create and manipulate the client interface. The applet startup is
very fast because it is very small, you don't need to download large
classes with the client interface. Execution is done "on-demand"
according to instructions received from the database. The instructions
are very optimized in terms of network bandwidth and based on preliminary
tests it can be up to 1/10 of a similar HTML screen. Less network usage
means faster response and means that even low speed connections will
have a good performance (a future development can be to use this in
wireless devices like PDAs e even cell phones, just an idea for now).
The applet can also be executed standalone by using Java Web Start.
With this approach no business code, except the interface, is executed
on the client. This means that alterations in the application are
dynamically reflected in the client, no need to "re-download" the
application. Events are transmitted when required only so network
usage is minimized. It is also possible to establish triggering
events to further reduce network usage. Since the protocol used is
HTTP (which is stateless), the database framework I am creating will
be responsible to maintain the state of connections, variables, locks
and session information, so the developer don't need to worry about it.
The framework will have many layers, from communication up to
application so there will be pre-built functions to handle queries,
pagination, lock, mail, log, etc. The final objective is to have a
rich client application integrated into the database with minimum
programming and maintenance requirements, not forgetting customization
capabilities. Below is a very small example of what can de done. A
desktop with two windows, each window with two fields, a button with an
image to switch the values, and events to convert the typed text when
leaving the field or double-clicking it. The "leave" event also has an
optimization to only be triggered when the text changes. I am still
developing the framework and adjusting the renderer but I think that all
technical barriers were transposed by now. The framework is still in
the early stages, my guess is that only 5% is done so far. As a future
development even an IDE can be created so we have a graphical environment
do develop applications. I am willing to share this with the PL/SQL
community and listen to ideas and comments.
Example:
create or replace procedure demo1 (
jre_version in varchar2 := '1.4.2_01',
debug_info in varchar2 := 'false',
compress_buffer in varchar2 := 'false',
optimize_buffer in varchar2 := 'true'
) as
begin
interface.initialize('demo1_init','JGR Demo 1',jre_version,debug_info,compress_buffer,optimize_buffer);
end;
create or replace procedure demo1_init as
begin
toolkit.initialize;
toolkit.create_icon('icon',interface.global_root_url||'img/switch.gif');
toolkit.create_internal_frame('frame1','Frame 1',50,50,300,136);
toolkit.create_label('frame1label1','frame1',10,10,50,20,'Field 1');
toolkit.create_label('frame1label2','frame1',10,40,50,20,'Field 2');
toolkit.create_text_field('frame1field1','frame1',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame1field2','frame1',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame1field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame1field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button1','frame1',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button1',toolkit.action_performed_event,'demo1_switch_fields(''frame1field1'',''frame1field2'')','frame1field1:'||toolkit.get_text_method||',frame1field2:'||toolkit.get_text_method);
toolkit.create_internal_frame('frame2','Frame 2',100,100,300,136);
toolkit.create_label('frame2label1','frame2',10,10,50,20,'Field 1');
toolkit.create_label('frame2label2','frame2',10,40,50,20,'Field 2');
toolkit.create_text_field('frame2field1','frame2',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame2field2','frame2',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame2field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame2field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button2','frame2',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button2',toolkit.action_performed_event,'demo1_switch_fields(''frame2field1'',''frame2field2'')','frame2field1:'||toolkit.get_text_method||',frame2field2:'||toolkit.get_text_method);
end;
create or replace procedure demo1_set_upper as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,upper(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_set_lower as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,lower(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_switch_fields (
field1 in varchar2,
field2 in varchar2
) as
begin
toolkit.set_string_method(field1,toolkit.set_text_method,interface.array_event_value(2));
toolkit.set_string_method(field2,toolkit.set_text_method,interface.array_event_value(1));
toolkit.set_text_field_event(field1,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
toolkit.set_text_field_event(field1,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;Is it sound like Oracle Portal?
But you want to save a layer 9iAS.
Basically, that was the WebDB.(Oracle changed the name to Portal when version 3.0)
Over all, I agree with you.
>>Having a Oracle database as the central location for all components has many
>>advantages:
>>
>>- Unique point of maintenance, backup and restore
>>- Integrated database security
>>- One language for everything, PL/SQL or Java (even both if desired)
>>- Inherited database cache, transaction and processing optimizations
>>- Direct access to the database dictionary
>>- Application runs on Oracle which has support for many platforms.
>>- Transparent use of parallel processing, clusters and future
>>background technologies
I would like to build 'ZOPE' inside Oracle DB as a back-end
Using Flash MX as front-end.
Thomas Ku. -
Problem with java swing button and loop
Problem with java swing button and loop
I�m using VAJ 4.0. and I�m doing normal GUI application. I have next problem.
I have in the same class two jswing buttons named start (ivjGStart) and stop (ivjGStop) and private static int field named Status where initial value is 0. This buttons should work something like this:
When I click on start button it must do next:
Start button must set disenabled and Stop button must set enabled and selected. Field status is set to 1, because this is a condition in next procedure in some loop. And then procedure named IzvajajNeprekinjeno() is invoked.
And when I click on stop button it must do next:
Start button must set enabled and selected and Stop button must set disenabled.
Field status is set to 0.
This works everything fine without loop �do .. while� inside the procedure IzvajajNeprekinjeno(). But when used this loop the start button all the time stay (like) pressed. And this means that a can�t stop my loop.
There is java code, so you can get better picture:
/** start button */
public void gStart_ActionEvents() {
try {
ivjGStart.setEnabled(false);
ivjGStop.setEnabled(true);
ivjGStop.setSelected(true);
getJTextPane1().setText("Program is running ...");
Status = 1;
} catch (Exception e) {}
/** stop button */
public void gStop_ActionEvents() {
try {
ivjGStart.setEnabled(true);
ivjGStart.setSelected(true);
ivjGStop.setEnabled(false);
getJTextPane1().setText("Program is NOT running ...");
Status = 0;
} catch (Exception e) {
/** procedure IzvajajNeprekinjeno() */
public void IzvajajNeprekinjeno() { //RunLoop
try {
int zamik = 2000; //delay
do {
Thread.sleep(zamik);
PreberiDat(); //procedure
} while (Status == 1);
} catch (Exception e) {
So, I'm asking what I have to do, that start button will not all the time stay pressed? Or some other aspect of solving this problem.
Any help will be appreciated.
Best regards,
TomiThis is a multi thread problem. When you start the gui, it is running in one thread. Lets call that GUI_Thread so we know what we are talking about.
Since java is task-based this will happen if you do like this:
1. Button "Start" is pressed. Thread running: GUI_Thread
2. Event gStart_ActionEvents() called. Thread running: GUI_Thread
3. Method IzvajajNeprekinjeno() called. Thread running: GUI_Thread
4. Sleep in method IzvajajNeprekinjeno() on thread GUI_Thread
5. Call PreberiDat(). Thread running: GUI_Thread
6. Check status. If == 1, go tho 4. Thread running: GUI_Thread.
Since the method IzvajajNeprekinjeno() (what does that mean?) and the GUI is running in the same thread and the event that the Start button has thrown isn't done yet, the program will go on in the IzvajajNeprekinjeno() method forever and never let you press the Stop-button.
What you have to do is do put either the GUI in a thread of its own or start a new thread that will do the task of the IzvajajNeprekinjeno() method.
http://java.sun.com/docs/books/tutorial/uiswing/index.html
This tutorial explains how to build a multi threaded gui.
/Lime -
Keyboard-lock of swing program on Linux box
We are developing swing program on Linux, and we often meet keyboard-lock issues.
I try to simplify some of them to small programs, and still meet keyboard-lock.
Here I post two programs to show the error:
//---first ----------------------------------------------
package test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class KeyLock extends JFrame {
JPanel contentPanel = new JPanel();
JPanel wizardToolPan = new JPanel();
JButton btnBack = new JButton("Back");
JButton btnNext = new JButton("Next");
JButton btnAbout = new JButton("About");
public static final String aboutMsg =
"<html> This program will help to find keyboard lock problems, two way to reproduce:<br><br>" +
"1 - press Alt+N to navigate next, and don't release keys untill there are no more next page, <br>" +
"then try Alt+B to navigate back and also don't release keys untill page 0,<br>" +
"repeat Alt+N and Alt+B again and again, keyboard will be locked during navigating. <br><br>" +
"2 - press Alt+A in main window, it will popup an about dialog,<br>" +
"then press down space key and don't release, <br>" +
"the about dialog will be closed and opened again and again,<br>" +
"keyboard will be locked sooner or later." +
"</html>";
public KeyLock() {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("Keyboard lock test");
getContentPane().setLayout(new BorderLayout());
btnBack.setMnemonic('B');
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
KeyLock.this.goBack(e);
btnNext.setMnemonic('N');
btnNext.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
KeyLock.this.goNext(e);
btnAbout.setMnemonic('A');
btnAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(KeyLock.this, aboutMsg, "About", JOptionPane.INFORMATION_MESSAGE);
contentPanel.setLayout(new BorderLayout());
contentPanel.setPreferredSize(new Dimension(400, 250));
contentPanel.setMinimumSize(new Dimension(400, 250));
wizardToolPan.setLayout(new FlowLayout());
wizardToolPan.add(btnBack);
wizardToolPan.add(btnNext);
wizardToolPan.add(btnAbout);
this.getContentPane().add(contentPanel, java.awt.BorderLayout.CENTER);
this.getContentPane().add(wizardToolPan, java.awt.BorderLayout.SOUTH);
this.setSize(400, 300);
this.createContentPanels();
this.showCurrent();
private Vector<JPanel> slides = new Vector<JPanel>();
private int current = 0;
private void createContentPanels() {
for (int j = 0; j < 20; ++j) {
JPanel p = new JPanel(new FlowLayout());
p.add(new JLabel("Page: " + j));
p.add(new JTextField("Page: " + j + ", input something here", 20));
p.add(new JTextField("Page: " + j + ", input something here", 20));
p.add(new JTextField("Page: " + j + ", input something here", 20));
p.add(new JLabel("Input something in password box:"));
p.add(new JPasswordField(20));
p.add(new JCheckBox("Try click here, focus will be here."));
p.add(new JRadioButton("Try click here, focus will be here."));
slides.add(p);
public void showCurrent() {
if (current < 0 || current >= slides.size())
return;
JPanel p = slides.get(current);
this.contentPanel.add(p, java.awt.BorderLayout.CENTER);
this.pack();
Component[] comps = p.getComponents();
if (comps.length > 0) {
comps[0].requestFocus(); // try delete this line
this.repaint();
public void goNext(ActionEvent e) {
if (current + 1 >= slides.size())
return;
this.contentPanel.remove(slides.get(current));
current++;
sleep(100);
this.showCurrent();
public void goBack(ActionEvent e) {
if (current <= 0)
return;
this.contentPanel.remove(slides.get(current));
current--;
sleep(100);
this.showCurrent();
public static void sleep(int millis) {
try {
Thread.sleep(millis);
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
KeyLock wizard = new KeyLock();
wizard.setVisible(true);
}The first program will lead to keyboard-lock in RHEL 4 and red flag 5, both J2SE 5 and 6.
//---second -----------------------------------------
package test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class KeyFocusLost extends JFrame {
private JButton btnPopup = new JButton();
private JTextField jTextField1 = new JTextField();
private JPasswordField jPasswordField1 = new JPasswordField();
private JPanel jPanel1 = new JPanel();
private JScrollPane jScrollPane3 = new JScrollPane();
private JTree jTree1 = new JTree();
private JButton btnAbout = new JButton("About");
public static final String aboutMsg =
"<html> This program is used to find keyboard focus lost problem.<br>" +
"Click 'popup' button in main window, or select any node in the tree and press F6,<br>" +
"a dialog popup, and click ok button in the dialog,<br>" +
"keyboard focus will lost in main window." +
"</html>";
public KeyFocusLost() {
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setTitle("Keyboard focus test");
getContentPane().setLayout(null);
btnPopup.setBounds(new Rectangle(33, 482, 200, 35));
btnPopup.setMnemonic('P');
btnPopup.setText("Popup and lost focus");
btnPopup.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PopupDialog dlg = new PopupDialog(KeyFocusLost.this);
dlg.setVisible(true);
btnAbout.setBounds(new Rectangle(250, 482, 100, 35));
btnAbout.setMnemonic('A');
btnAbout.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(KeyFocusLost.this, aboutMsg, "About", JOptionPane.INFORMATION_MESSAGE);
jTextField1.setText("Try input here, and try input in password box below");
jTextField1.setBounds(new Rectangle(14, 44, 319, 29));
jPasswordField1.setBounds(new Rectangle(14, 96, 319, 29));
jPanel1.setBounds(new Rectangle(14, 158, 287, 291));
jPanel1.setLayout(new BorderLayout());
jPanel1.add(new JLabel("Select any node in the tree and press F6."), java.awt.BorderLayout.NORTH);
jPanel1.add(jScrollPane3, java.awt.BorderLayout.CENTER);
jScrollPane3.getViewport().add(jTree1);
Object actionKey = "popup";
jTree1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), actionKey);
jTree1.getActionMap().put(actionKey, new AbstractAction() {
public void actionPerformed(ActionEvent e) {
PopupDialog dlg = new PopupDialog(KeyFocusLost.this);
dlg.setVisible(true);
this.getContentPane().add(jTextField1);
this.getContentPane().add(jPasswordField1);
this.getContentPane().add(jPanel1);
this.getContentPane().add(btnPopup);
this.getContentPane().add(btnAbout);
public static void main(String[] args) {
KeyFocusLost keytest = new KeyFocusLost();
keytest.setSize(400, 600);
keytest.setVisible(true);
static class PopupDialog extends JDialog {
private JButton btnOk = new JButton();
public PopupDialog(Frame owner) {
super(owner, "popup dialog", true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.getContentPane().setLayout(null);
btnOk.setBounds(new Rectangle(100, 100, 200, 25));
btnOk.setMnemonic('O');
btnOk.setText("OK, then focus lost");
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
PopupDialog.this.getOwner().toFront();
try {
Thread.sleep(100); // try delete this line !!!
} catch (Exception ex) {
ex.printStackTrace();
PopupDialog.this.dispose();
this.getContentPane().add(btnOk);
this.getRootPane().setDefaultButton(btnOk);
this.setSize(400, 300);
}The second program will lead to keyboard-focus-lost in RHEL 3/4 and red flag 4/5, J2SE 5, not in J2SE 6.
And I also tried java demo program "SwingSet2" in red flag 5, met keyboard-lock too.
I guess it should be some kind of incompatibleness of J2SE with some Linux platform. Isn't it?
Please help, thanks.Hi.
I have same problems on Ubuntu with Java 6 (all versions). I would like to use NetBeans or IntelliJ IDEA but it is not possible due to keyboard locks.
I posted this bug
https://bugs.launchpad.net/ubuntu/+bug/174281
before I found some info about it:
http://forums.java.net/jive/thread.jspa?messageID=189281
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6506617
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6568693
I don't know from which part this bug comes, but I wonder why it isn't fixed yet. Does anybody else use NetBeans or IntelliJ IDEA on linux with Java 6 ?
(I cannot insert link :\ ) -
Error while running Swing program on FreeBSD
Hi,
I am trying to run simple swing program "helloworld"
but while executing it gives following error on FreeBSD
Exception in thread "main" java.lang.UnsatisfiedLinkError:
/usr/local/linux-sun-jdk1.4.2/jre/lib/i386/libawt.so: libXp.so.6:
cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1477)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
at java.awt.EventQueue.<clinit>(EventQueue.java:80)
at javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1170)
at JPanels.main(JPanels.java:29)
Should i install XFree86-libs package on FreeBsd
configuration
FreeBSD 4.10-BETA (GENERIC)
I am using following packages
linux-sun-jdk-1.4.2.04 Sun Java Development Kit 1.4 for Linux
linux_base-8-8.0_4 Base set of packages needed in Linux mode (only for i386)
linux_devtools-8.0_1 Packages needed for doing development in Linux mode
libtool-1.3.5_1 Generic shared library support script
gmake-3.80_1 GNU version of 'make' utility
automake-1.4.5_9 GNU Standards-compliant Makefile generator (legacy version
GCC 2.95.4
gdb 4.18
ld 2.12.1 supported emulation elf_i386
regards
Man479This is not really a Swing question. You should install the library which satisfies the lookup of libXp.so.6 .
I quess the jre for this platform is compiled against this version. Looks to me like some X related library, maybe google can resolve a solution/package to install?
Greetz -
Running a Swing program from another program
I'm having what is most likely newbie problems since I'm relatively new to Swing programming. Basically my situation is this: I've got a program that looks at its command line parameters and either runs through a series of actions or presents a Swing GUI to allow the user to step through the actions one by one.
My problem is that I bascially don't know how to call (instantiate, declare, etc.) the GUI from my Java code. I tried implementing the GUI class with a runnable interface, but evertime I try to invoke the start on the interface I'm getting an error. I have a feeling I'm just missing something. The Swing GUI works fine if I call it on its own so it's the code the invokes it from the small command line processor that I'm goofing up somehow.
So to recap, I have a small Java app that I'm trying to call a GUI that I've built and can't seem to get the code right.
Any pointers to examples or explanation on how to accomplish the above are welcome.
Thanks,
EdThat the "2" is printed out immediately is as expected, but I don't understand why the JVM exits. The following is, AFAIK, a trimmed down version of what you are doing, and if you run it you'll see that the frame remains until you close it manually:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class ShowFrame {
public static void main(String[] args) {
AppFrame gui = new AppFrame();
gui.run();
private static class AppFrame extends JFrame implements Runnable {
public AppFrame() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton btn = new JButton("Close");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
AppFrame.this.dispose();
getContentPane().add(btn);
pack();
setLocationRelativeTo(null);
public void run() {
System.out.println("1");
this.setVisible(true);
System.out.println("2");
}Maybe someone else can shed some light over your problem...
Maybe you are looking for
-
New IMAC slowing down with spinning ball
I've had my MAC for about 3 weeks (I switched from a PC). Today it started slowing down. First whe n I tried to print something and then when I was in Excel (Office for MAC 2004). Both times it didn't do anything for a minute and then the clorful spi
-
Hi, We need to make outgoing payment against credit balance of BP (transaction made through JE). Now after payment, how to link / reconcile these transaction. Eg. BP1 has CR balance (5000) through JE. Payment made 3000 By this BP account updated but
-
LVM drives not showing on sucessfull boot (/root is on lvm)
I really don't know how this is possible but I have my system booting. It works fine till it makes it to checking filesystem then it complains that it can't find device /dev/mapper/array-root. That is the location of the root filesystem the one it's
-
My iphone died wont turn on wont charge what do i do
help what do i do
-
One vertical muse project and two languages
Hi, i am building a vertical site, if you click on a tab it scrolls to that page using tags. So far so good. But now comes the part I am busting my brain over. This site has a dutch (main) version and an english version (the english version is not cr