Draggable buttons in Java Swing
Hi,
I want to develop an application in Java Swing. The application I am going to develop is an application for developing other applications. I want my application to include a button which also acts as a drag and drop UI element. For example, I want my application to include a button for adding a picture. There are 4 buttons of different pictures. If a user wants to add a picture he can either click on one of these buttons and that picture will be added somewhere on the screen or dragging this button and drop it and that picture will be added where he dropped that button.
Could anyone please tell me
1. If I can develop an application which includes Drag and Drop UI element if I develop it in Java Swing
2. If a button (or other UI element) can act as both a button and a drag and drop element if I develop my application in Java Swing
3.
Could you please tell me where I can find some screenshots of applications which has been developed in Java Swing? I am not familiar with this program and I am not that good at programming, so I would like to get some impression of how it might look like.
Thanks in advanced
1. the good thing about Swing is that it is very flexible and with clever programming you can do just about anything. The problem is that depending on your requirements, this could require a great deal of programming that can be very hard to implement such that it works properly on all popular platforms (windows, linux, mac).
2. see 1.
3. Swing applications are "skinnable", you can give them a great number of different appearances. The default is to give the application a system look and feel, so they look pretty much like any other application for that platform. This means that when you run your application on Windows, it will look like a Windows application, if you run it on a Mac it will look like a Mac application, etc.
I am not familiar with this program and I am not that good at programmingThat is quite a problem, because Swing is not the easiest API around. It requires a solid knowledge of Java and Object Oriented Programming in general as the entire API is based heavily on OOP concepts. To get a better idea of Swing, read through the Swing tutorial here:
http://java.sun.com/docs/books/tutorial/uiswing/
Similar Messages
-
Transparent Buttons in Java Swing?
Hi!
I want to create transparent Buttons using java swing for my desktop application. Can any one tell me how to do it?I can help, but it depends on what you mean by "transparent".
Do you mean TOTALLY transparent, or slightly transparent, or merely translucent? Do you want the text on the button to be in any way transparent? You really need to be more specific.
Basically, though, the concept is pretty simple. All swing components have several methods that can be overridden by somebody who knows what they are doing, in order to customize their appearances.
Some of these are: paint(), paintComponent(), ComponentUI.paint(), etc.
You need to determine the right place to put the new code. Then you extend the class, and change the transparency of the graphics object passed into the method in question, and then pass control to the super implementation of that method.
There are some traps you need to make sure you avoid, though:
1. If you want transparent components, you MUST have the opaque property of the component set to false. Otherwise, the components beneath your transparent button will never update.
2. When you start messing with a graphics object to create transparency, you need to make sure that you revert your changes to the graphics object when you are finished, because all painting uses the same graphics object -> so if you set your button transparent, and then forget to remove the transparency, all objects drawn after the button will also be drawn transparent.
A word of caution:
This sort of manipulation is not hard, but you NEED to understand the painting model for SWING. There are a few articles hosted by sun that can help you in this respect.
Good Luck!
- Adam -
Problem with one of my buttons in java swing
Gary,
I am trying to create a button that will link to my .txt file located on my desktop then when I go to display button and press it there are errors coming up that I dont get. The display button should display the results of the previous search inside in a textArea I was wondering if you could help me
Rgds
Tony
Here is the code
//creates a button that can be used to display the results in the text area
display_button = new JButton("Display results on text area");
display_button.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent event_performed)
try
URL url = null;
String line;
InputStream in = url.openStream();
BufferedReader dis = new BufferedReader(new InputStreamReader(in));
buffer = new StringBuffer();
while((line = dis.readLine()) != null)
buffer.append(line + "\n");
in.close();
catch(IOException file_error)
textArea.append("IO Exception = " + file_error);
// Load the file into the TextArea.
textArea.append(buffer.toString());
} //End of display button actionPerformed
}); //End of display_button actionListener
The resulting errors are:
at tony_buckley_project.Applet2.readFile(Applet2.java:330)
at tony_buckley_project.Applet2.start(Applet2.java:356)
at tony_buckley_project.Applet2$3.actionPerformed(Applet2.java:250)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5134)
at java.awt.Component.processEvent(Component.java:4931)
at java.awt.Container.processEvent(Container.java:1566)
at java.awt.Component.dispatchEventImpl(Component.java:3639)
at java.awt.Container.dispatchEventImpl(Container.java:1623)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
at java.awt.Container.dispatchEventImpl(Container.java:1609)
at java.awt.Window.dispatchEventImpl(Window.java:1590)
at java.awt.Component.dispatchEvent(Component.java:3480)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)One problem that i can see from your code is that you are writing
url = null;
and then
InputStream in = url.openStream();
should give u an exception right there... -
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 -
Need java code to perform refresh button action using swings and awt
i need java code to perform refresh button action using swings and awt.please help me
Wait ! Noboby ? OK, I'll do it
public void onBtnAction ()
if (!fresh)
refresh ();
}Seriously, did you expect anyone to answer such a cryptic question ? -
[SOLVED] XFCE - Java Swing button theme?
I'm running XFCE, and I notice that all Swing-based Java applications use the ugly Swing button theme. When I used GNOME 3, some of them would adapt to the GNOME button theme (and would look like they belonged on the system).
Is this issue with XFCE, my current GTK theme (dorian), or Java, and how can I change this?
Last edited by 2mac (2014-01-01 22:17:07)Thank you for the information.
I followed the wiki by adding
export _JAVA_OPTIONS="-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
to my ~/.bashrc file.
To test, I launched the Minecraft launcher (one of the applications which does support style changes between desktops), and got back this information:
Picked up _JAVA_OPTIONS: -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Error parsing gtk-icon-sizes string: ''
And it had no effect. Any ideas?
Last edited by 2mac (2013-12-31 16:35:39) -
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. -
Loading large files in Java Swing GUI
Hello Everyone!
I am trying to load large files(more then 70 MB of xml text) in a Java Swing GUI. I tried several approaches,
1)Byte based loading whith a loop similar to
pane.setText("");
InputStream file_reader = new BufferedInputStream(new FileInputStream
(file));
int BUFFER_SIZE = 4096;
byte[] buffer = new byte[BUFFER_SIZE];
int bytesRead;
String line;
while ((bytesRead = file_reader.read(buffer, 0, BUFFER_SIZE)) != -1)
line = new String(buffer, 0, bytesRead);
pane.append(line);
}But this is gives me unacceptable response times for large files and runs out of Java Heap memory.
2) I read in several places that I could load only small chunks of the file at a time and when the user scrolls upwards or downwards the next/previous chunk is loaded , to achieve this I am guessing extensive manipulation for the ScrollBar in the JScrollPane will be needed or adding an external JScrollBar perhaps? Can anyone provide sample code for that approach? (Putting in mind that I am writting code for an editor so I will be needing to interact via clicks and mouse wheel roatation and keyboard buttons and so on...)
If anyone can help me, post sample code or point me to useful links that deal with this issue or with writting code for editors in general I would be very grateful.
Thank you in advance.Hi,
I'm replying to your question from another thread.
To handle large files I used the new IO libary. I'm trying to remember off the top of my head but the classes involved were the RandomAccessFile, FileChannel and MappedByteBuffer. The MappedByteBuffer was the best way for me to read and write to the file.
When opening the file I had to scan through the contents of the file using a swing worker thread and progress monitor. Whilst doing this I indexed the file into managable chunks. I also created a cache to further optimise file access.
In all it worked really well and I was suprised by the performance of the new IO libraries. I remember loading 1GB files and whilst having to wait a few seconds to perform the indexing you wouldn't know that the data for the JList was being retrieved from a file whilst the application was running.
Good Luck,
Martin. -
FirstGUI.java:7: Package java.swing not found in import.
Hi,
I am currently taking JAVA at UGA and am trying to learn the GUI part on my own, since our professor is not going to cover this. This is the first error I get when I compile the program. Any help is greatly appreciated...
Thanks,
Joe
Below is the program...
/* A first GUI. This class creates a label and a button. The count in the label is incremented each
time that the button is pressed.
import java.awt.*;
import java.awt.event.*;
import java.swing.*;
public class FirstGUI extends JPanel {
// Instance variables
private int count = 0; // Number of pushes
private JButton pushButton; // Push button
private JLabel label; // Label
// Initialization method
public void init() {
// Set the layout manager
setLayout( new BorderLayout() );
// Create a label to hold the push count
label = new JLabel("Push Count: 0");
add( label, BorderLayout.NORTH );
label.setHorizontalAlignment( label.CENTER );
// Create a button
pushButton = new JButton("Test Button");
pushButton.addActionListener( new ButtonHandler (this) );
add( pushButton, BorderLayout.SOUTH );
// Method to update push count
public void updateLabel() {
label.setText( "Push Count: " + (++count) );
// Main method to create frame
public static void main(String a[]) {
// Create a frame to hold the application
JFrame fr = new JFrame("FirstGUI ...");
fr.setSize(200,100);
// Create a Window Listener to handle "close" events
WindowHandler 1 = new WindowHandler();
fr.addWindowListener(1);
// Create and initialize a FirstGUI object
FirstGUI fg = new FirstGUI();
fg.init();
// Add the object to the center of the frame
fr.getContentPane().add(fg, BorderLayout.CENTER);
// Display the frame
fr,setVisible( true );
class ButtonHandler implements ActionListener {
private FirstGUI fg;
// Constructor
public ButtonHandler ( FirstGUI fg1 ) {
fg = fg1;
// Execute when an event occurs
public void actionPerformed( ActionEvent e ) {
fg.updateLabel();
}The error is below...
A:\ENGR1140>javac FirstGUI.java
FirstGUI.java:39: Identifier expected.
public static void main(String s[]) {
^
FirstGUI.java:39: 'class' or 'interface' keyword expected.
public static void main(String s[]) {
^
I don't think the actual error is on line 39, I looked in the book that has the code and line 39 is typed just as it is shown in the book.
Below is the program...
/* A first GUI. This class creates a label and a button. The count in the label is incremented each
time that the button is pressed.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FirstGUI extends JPanel {
// Instance variables
private int count = 0; // Number of pushes
private JButton pushButton; // Push button
private JLabel label; // Label
// Initialization method
public void init() {
// Set the layout manager
setLayout( new BorderLayout() );
// Create a label to hold the push count
label = new JLabel("Push Count: 0");
add( label, BorderLayout.NORTH );
label.setHorizontalAlignment( label.CENTER );
// Create a button
pushButton = new JButton("Test Button");
pushButton.addActionListener( new ButtonHandler (this) );
add( pushButton, BorderLayout.SOUTH );
// Method to update push count
public void updateLabel() {
label.setText( "Push Count: " + (++count) );
// Main method to create frame
public static void main(String s[]) {
// Create a frame to hold the application
JFrame fr = new JFrame("FirstGUI ...");
fr.setSize(200,100);
// Create a Window Listener to handle "close" events
WindowHandler 1 = new WindowHandler();
fr.addWindowListener(1);
// Create and initialize a FirstGUI object
FirstGUI fg = new FirstGUI();
fg.init();
// Add the object to the center of the frame
fr.getContentPane().add(fg, BorderLayout.CENTER);
// Display the frame
fr,setVisible( true );
class ButtonHandler implements ActionListener {
private FirstGUI fg;
// Constructor
public ButtonHandler ( FirstGUI fg1 ) {
fg = fg1;
// Execute when an event occurs
public void actionPerformed( ActionEvent e ) {
fg.updateLabel(); -
How to store grid points in a file using Java Swing?
Please someone help me with any suggestions about how to store the grid points in a file using Java Swing
Actually i have designed a gridlayout in Java Swing and have added some components to it such as buttons or images....My problem is when I click on any of the cell of the grid,the corresponding cell number should be stored in an external file....Do u have any suggestions on how to do it?
-
Droppable UI element in Java Swing
Hi,
I want to develop an application in Java Swing. The application I am going to develop is an application for developing other applications. I want my application to include a button which also acts as a drag and drop UI element. For example, I want my application to include a button for adding a picture. There are 4 buttons of different pictures. If a user wants to add a picture he can either click on one of these buttons and that picture will be added somewhere on the screen or dragging this button and drop it and that picture will be added where he dropped that button.
Could anyone please tell me
1. If I can develop an application which includes Drag and Drop UI element if I develop it in Java Swing
2. If a button (or other UI element) can act as both a button and a drag and drop element if I develop my application in Java Swing
Thanks in advancedHi there,
Thanks for the useful link.
Could you please tell me where I can find some screenshots of applications which has been developed in Java Swing? I am not familiar with this program and I am not that good at programming, so I would like to get some impression of how it might look like.
Thanks again -
Hi Sir,
I am using a java GUI Object for taking user name and password (in fields of user name and password) and would like to send the information to a server (in the form of Xml file) on the click of 'Ok' button. The database of registered user is stored on server. If the entered users name or passwords are not correct, the server will send a failure notification to the client (terminal where we typed user name and password). If this is successful, it gives a success notification.
I am doing this using Swings. Also I want all the communication taking place between the server and the client in the form of XML files. being a new to Swings I am facing certain difficulty.
I will appreciate your suggestions and help in this regard.
Thanks and regards,
Sarib817439 wrote:
Could you please tell me under which category I should post this query. I could not find JAVA Swing section anywhetre in forum home.Steps
1. Determine what it is that you want the database to do and what you want your code to do. This does NOT involve writing code.
2. Learn JDBC
3. Write JDBC classes that does ONLY the database functionality from 1. If it has GUI (swing) code then it is wrong.
4. Unit test it.
5. Learn Swing
6. Write GUI (swing) code that uses the code from 3.
7. Test it.
There is a forum for JDBC - steps 2,3,4.
There is a forum for Swing - steps 5, 6, 7. -
Help! Multi-Thread in Java Swing!
Hi,
I have a java swing application. The basic logic for the application is, I will input some data and click the "Process" Button.
The application will perform some operation. Currently I can perform one operation at a time.
I have to extend the scope of this application to multiple process at the same time.
like, I will add a table in the application. Whenever I give input and press the "Process" button, the process should be added in the table at the same time I should be able to input and initiate the next operation.
I am not very much experienced in java swing.
Is it possible to do in swing? Can somebody give me some input on this?
Thanks,
Raja.Check out SwingWorker http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingWorker.html
-
Calling default browser on button click in swings
Hi all,
I have built a window with tab page in it having a button on tabpage in java SWING. Now i want that when ever i click on button it calls my default browser i.e. IE6 with a predefined URL. The browser should open with in the tabpage area not beyond that. Please help........ Many people have helped till now because i am very new to this.......
Again looking for help from experts................I feel like I answer this almost everyday
search the web for JDIC and webbrowser -
Creating file browser GUI using java swing tree
Hi all,
I have some questions which i wish to clarify asap. I am working on a file browser project using java swing. I need to create 2 separate buttons. 1 of them will add a 'folder' while the other button will add a 'file' to the tree when the buttons are clicked once. The sample source code known as 'DynamicTreeDemo' which is found in the java website only has 1 add button which is not what i want. Please help if you know how the program should be written. Thx a lot.
Regards,Sorry, don't know 'DynamicTreeDemo'import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.io.File;
public class Test extends JFrame {
JTree jt = new JTree();
DefaultTreeModel dtm = (DefaultTreeModel)jt.getModel();
JButton newDir = new JButton("new Dir"), newFile = new JButton("new File");
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = getContentPane();
newDir.setEnabled(false);
newFile.setEnabled(false);
jt.setShowsRootHandles(true);
content.add(new JScrollPane(jt), BorderLayout.CENTER);
File c = new File("C:\\temp");
DefaultMutableTreeNode root = new DefaultMutableTreeNode(c);
dtm.setRoot(root);
addChildren(root);
jt.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent tse) { select(tse) ; }
JPanel jp = new JPanel();
content.add(jp, BorderLayout.SOUTH);
jp.add(newDir);
jp.add(newFile);
newDir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
TreePath tp = jt.getSelectionPath();
if (tp!=null) {
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
File newFile = new File((File)dmtn.getUserObject(),"foo");
if (newFile.mkdir()) {
dmtn.add(new DefaultMutableTreeNode(newFile));
dtm.nodeStructureChanged(dmtn);
} else System.out.println("No Dir");
newFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
TreePath tp = jt.getSelectionPath();
if (tp!=null) {
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
File newFile = new File((File)dmtn.getUserObject(),"foo.txt");
try {
if (newFile.createNewFile()) {
dmtn.add(new DefaultMutableTreeNode(newFile));
dtm.nodeStructureChanged(dmtn);
} else System.out.println("No File");
catch (java.io.IOException ioe) { ioe.printStackTrace(); }
setSize(300, 300);
setVisible(true);
void select(TreeSelectionEvent tse) {
TreePath tp = jt.getSelectionPath();
newDir.setEnabled(false);
newFile.setEnabled(false);
if (tp!=null) {
DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
File f = (File)dmtn.getUserObject();
if (f.isDirectory()) {
newDir.setEnabled(true);
newFile.setEnabled(true);
void addChildren(DefaultMutableTreeNode parent) {
File parentFile = (File)parent.getUserObject();
File[] children = parentFile.listFiles();
for (int i=0; i<children.length; i++) {
DefaultMutableTreeNode child = new DefaultMutableTreeNode(children);
parent.add(child);
if (children[i].isDirectory()) addChildren(child);
public static void main(String[] args) { new Test(); }
Maybe you are looking for
-
Why can´t I install Lion on my mcbook air
I can not install OS X Lion on my MacBook Air. It say "You need 3.78 GB of available space to download Mac OS X 10.7. Remove items from your startup disk to increase available space" What to do?
-
I will try to download any updates for QuickTime Player and see if that solves the problem. That is the only thing I can think of at the moment.
-
I have a new IPAD, no sim installed yet, it does not wont to connet to the activation server, can anybody help me? Anton
-
Hi Skype Support and Community, this is the second time this is happened and i have followed all the advice in the support forums... I need someone to let me know is there anything else i should to do to fix this or is this a skype issue... Is it wor
-
Is anyone having issues with installing the 32 bit version of Adobe Presenter?
I am trying to install the 32 bit version of Presenter on my computer from the downloaded file on the website. I have an authorization code I put in and then when it starts to download it asks to insert the disk when there is not one. Below are the s