How should I cread my GUI in Swing?

I need to write a GUI with which I can connect different kinds of components together (2-Dimensional). The components must be represented by images and they should be turned in 8 directions, clockwise or counterclockwise.
The graphical components should be moved with the mouse, dragging and dropping them. When released, the components should dock to another graphical component (if compatible and close enough). Maybe I would like to use a grid.
I never did dragging and dropping or rotating or docking or programming a grid. Can someone help me a little bit? Is there a framework for this existing? Or what classes or Java technologies should I use?

I postet my question now to the 2D forum. Please reply here: http://forum.java.sun.com/thread.jsp?forum=20&thread=337601

Similar Messages

  • How to use annotation with GUI in swing

    hi,
    i am new to annotation. I know how to use this with classes, methods and java elements. I am developing a tool in applet to post comment on my notepad, but unable to find that how to use this with GUI of swing. I have gone through most of forums and tutorials but got no idea. Anyone could give me little idea.
    Thanks

    >
    i need to use the applet mousedown function in swing..>There is no such class as 'applet' in the JRE, Swing has an upper case 1st letter, functions in Java are generally referred to as methods, and there is no 'mousedown' method in the JRE.
    OTOH a Swing JApplet inherits the mouseDown method from Component, and it was deprecated in Java 1.1. The documentation (JavaDocs) provides instructions on what to use instead.
    >
    is there any way to use it or any other alternative is available for this?
    if can provide me a sample code.>If can provide me cash. Short of that, you might actually need to do some research/coding of your own.
    As an aside. What does any of this have to do with Java 2D?

  • Need Help to update the labels in the GUI syncronously - Swing application

    Hello everyone,
    I need some help regarding a swing application. I am not able to syncronously update the counters and labels that display on my Swing GUI as the application runs in the background. But when the running of application is completed, then the labels on the GUI are getting updated, But I want update the labels and counters on the GUI syncronously as the code executes... below I am giving the format of the code I have written..............
    public class SwingApp extends JFrame{
            // here i have declared the label and component varibles like...
                      private JTextField startTextField;
           private JComboBox maxComboBox;
           private JTextField logTextField;
           private JTextField searchTextField;
           private JLabel imagesDownloaded1;
           private JLabel imagesDownloaded2;
           private JLabel imagesDidnotDownload1;
           private JLabel imagesDidnotDownload2;
                      private JButton startButton;
    //now in the constructer.............
    public Swing(){
    //I used gridbaglayout and wrote the code for the GUI to appear....
    startButton = new JButton("Start Downloading");
        startButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            try{
                 actionSearch();   //actionSearch will contain all the code and the function calls of my application...........
            }catch(Exception e1){
                 System.out.println(e1);
        constraints = new GridBagConstraints();
        constraints.gridwidth = GridBagConstraints.REMAINDER;
        constraints.insets = new Insets(5, 5, 5, 5);
        layout.setConstraints(startButton, constraints);
        searchPanel.add(startButton);
    //update is a function which initiates a thread which updates the GUI. this function will be called to pass the required variables in the application
    public void update(final int count_hits, final int counter_image_download1, final int didnot_download1) throws Exception{
         Thread thread = new Thread(new Runnable() {
             public void run() {
                  System.out.println("entered into thread");
                  System.out.println("the variable that has to be set is " + count_hits);
                  server_hits_count.repaint(count_hits);
                  server_hits_count.setText( " "+ Integer.toString(count_hits));
                  imagesDownloaded2.setText(" " + Integer.toString(counter_image_download1));
                  imagesDidnotDownload2.setText(" " + Integer.toString(didnot_download1));
                  repaint();
         //this.update(count_hits);
         thread.start();
    //Now in main............................
    public static void main(String[] args){
    Swing s = new Swing();
    s.setVisible(true);
    }//end of main
    }//end of class SwingAbove I have given the skeleton code of my application........ Please tell me how to update the GUI syncronously...
    Please its a bit urgent...............
    Thank you very much in advance
    chaitanya

    First off, note that this question should have been posted in the Swing section.
    GUI events run in a separate thread (the AWT / Event Dispatch Thread) than your program.
    You should be invoking AWT/Swing events via SwingUtilities.invokeLater().
    If for whatever reason you want to have the program thread wait for the event to process
    you can use invokeAndWait().
    http://java.sun.com/javase/6/docs/api/javax/swing/SwingUtilities.html

  • How  to  save  content of a  whole  swing  page

    Hi everyone ..
    can any of u tell me ,how to save contents of a java swing page in a single file with all components viz . textfield,textarea,JTable,JPanel etc .. with their respective formatting ie.e Font,Color etc ..
    Plz let me know it soon .. its very urgent ..
    Can I save it as Screenshot or Jpeg Image .. or how to go about it .
    Mohit

    Sure: see below!
    WARNING: this code will not compile as is because it uses some other classes from my personal code library (FileUtil & StringUtil). The particular methods of those classes which are used below are trivial methods that anyone can write, which is is why I have not posted them as well. So, to get the code below to compile, you can
    a) write your own versions of these classes or
    b) simply add the necessary methods to this class or
    c) simply comment out their usage (in the case of StringUtil, which is just used for arg checking)
    But if you still want me to post them, then I can post the relevant fragments of those classes.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import java.io.*;
    import javax.imageio.*;
    import javax.swing.*;
    import bb.io.FileUtil;
    import bb.util.StringUtil;
    * Class which supports taking screen shots of the entire desktop, AWT Components, or Swing JComponents.
    * This functionality is implemented in a series of <code>take</code> methods, each of which returns a BufferedImage.
    * This class also offers convenience <code>write</code> methods for storing BufferedImages to files.
    * <p>
    * The images taken by this class should be the precise images seen on the screen.
    * <b>However, the images written to files may deviate from the originals.</b>
    * One obvious cause is limitations of the chosen file format (especially with lossy formats like jpeg).
    * A subtle issue can occur, however, even when using lossless formats like png:
    * if the file is subsequently opened by another application,
    * that application may rescale the image, which can often cause visible artifacts.
    * <blockquote>
    *     To see this last problem on Windows XP,
    *     call {@link #take()} which returns an image of the entire desktop and write it to a file,
    *     and then open the file with XP's default graphics file viewer ("Windows Picture And Fax Viewer").
    *     This program shrinks the desktop image in order to fit it inside the program's window,
    *     and rescaling artifacts are readily seen, especially if the desktop image has any kind of text in it.
    *     If "Windows Picture And Fax Viewer" instead cropped the image or had a scroll pane, then this should not happen.
    * </blockquote>
    * <p>
    * Acknowledgement: this class was inspired by the program
    * <a href="http://www.discoverteenergy.com/files/ScreenImage.java">ScreenImage</a>.
    * Differences from the above program:
    * <ol>
    *  <li>this class uses {@link BufferedImage#TYPE_INT_ARGB} instead of {@link BufferedImage#TYPE_INT_RGB} in order to preserve alpha</li>
    *  <li>this class's {@link #formatNameDefault default image file format} is PNG instead of JPEG</li>
    *  <li>this class's <code>take</code> methods simply take snapshots and never have the side effect of writing image files</li>
    *  <li>this class added a version of <code>take</code> which can get a snapshot of a region of a Component</li>
    *  <li>
    *          when taking a snapshot of a region of a Component or JComponent,
    *          the Rectangle that specifies the region always has coordinates relative to the origin of the item
    *  </li>
    * </ol>
    * See also:
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=597936">forum discussion #1 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=256&threadID=529933">forum discussion #2 on screen shots</a>
    * <a href="http://forum.java.sun.com/thread.jspa?forumID=57&threadID=622393">forum discussion #3 on screen shots</a>.
    * <p>
    * It might appear that this class is multithread safe
    * because it is immutable (both its immediate state, as well as the deep state of its fields).
    * However, typical Java gui code is not multithread safe, in particular, once a component has been realized
    * it should only be accessed by the event dispatch thread
    * (see <a href="http://java.sun.com/developer/JDCTechTips/2003/tt1208.html#1">Multithreading In Swing</a>
    * and <a href="http://java.sun.com/developer/JDCTechTips/2004/tt0611.html#1">More Multithreading In Swing</a>).
    * So, in order to enforce that requirement, all methods of this class which deal with components
    * require the calling thread to be the event dispatch thread.
    * See the javadocs of each method for its thread requirements.
    * <p>
    * @author bbatman
    public class ScreenShot {
         // -------------------- constants --------------------
         * Defines the image type for the BufferedImages that will create when taking snapshots.
         * The current value is {@link BufferedImage#TYPE_INT_ARGB}, which was chosen because
         * <ol>
         *  <li>the 'A' in its name means that it preserves any alpha in the image (cannot use the "non-A" types)</li>
         *  <li>the "_INT" types are the fastest types (the "BYTE" types are slower)
         * </ol>
         * @see <a href="http://forum.java.sun.com/thread.jspa?threadID=709109&tstart=0">this forum posting</a>
         private static final int imageType = BufferedImage.TYPE_INT_ARGB;
         * Default value for the graphics file format that will be written by this class.
         * The current value is "png" because the PNG format is by far the best lossless format currently available.
         * Furthermore, java cannot write to GIF anyways (only read).
         * <p>
         * @see <a href="http://www.w3.org/TR/PNG/">Portable Network Graphics (PNG) Specification (Second Edition)</a>
         * @see <a href="http://www.w3.org/QA/Tips/png-gif">GIF or PNG</a>
         * @see <a href="http://www.libpng.org/pub/png/">PNG Home Site</a>
         public static final String formatNameDefault = "png";
         // -------------------- take --------------------
         // desktop versions:
         * Takes a screen shot of the entire desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @return a BufferedImage representing the entire screen
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take() throws AWTException, SecurityException {
              Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(region);
         * Takes a screen shot of the specified region of the desktop.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param region the Rectangle within the screen that will be captured
         * @return a BufferedImage representing the specified region within the screen
         * @throws IllegalArgumentException if region == null; region's width and height are not greater than zero
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Rectangle region) throws IllegalArgumentException, AWTException, SecurityException {
              if (region == null) throw new IllegalArgumentException("region == null");
              return new Robot().createScreenCapture( region );     // altho not currently mentioned in its javadocs, if you look at its source code, the Robot class is synchronized so it must be multithread safe, which is why any thread should be able to call this method
         // AWT Component versions:
         * Takes a screen shot of that part of the desktop whose area is where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Rectangle region = component.getBounds();
              region.x = 0;     // CRITICAL: this and the next line are what make region relative to component
              region.y = 0;
              return take(component, region);
         * Takes a screen shot of that part of the desktop whose area is the region relative to where component lies.
         * Any other gui elements in this area, including ones which may lie on top of component,
         * will be included, since the result always reflects the current desktop view.
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param component AWT Component to take a screen shot of
         * @param region the Rectangle <i>relative to</i> component that will be captured
         * @return a BufferedImage representing component
         * @throws IllegalArgumentException if component == null; component's width and height are not greater than zero; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         * @throws AWTException if the platform configuration does not allow low-level input control. This exception is always thrown when GraphicsEnvironment.isHeadless() returns true
         * @throws SecurityException if createRobot permission is not granted
         public static BufferedImage take(Component component, Rectangle region) throws IllegalArgumentException, IllegalStateException, AWTException, SecurityException {
              if (component == null) throw new IllegalArgumentException("component == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Point p = new Point(0, 0);
              SwingUtilities.convertPointToScreen(p, component);
              region.x += p.x;
              region.y += p.y;
              return take(region);
         // Swing JComponent versions:
         * Takes a screen shot of <i>just</i> jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @return a BufferedImage representing jcomponent
         * @throws IllegalArgumentException if jcomponent == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              Dimension d = jcomponent.getSize();
              Rectangle region = new Rectangle(0, 0, d.width, d.height);
              return take(jcomponent, region);
         * Takes a screen shot of <i>just</i> the specified region of jcomponent
         * (no other gui elements will be present in the result).
         * <p>
         * Only {@link EventQueue}'s {@link EventQueue#isDispatchThread dispatch thread} may call this method.
         * <p>
         * @param jcomponent Swing JComponent to take a screen shot of
         * @param region the Rectangle <i>relative to</i> jcomponent that will be captured
         * @return a BufferedImage representing the region within jcomponent
         * @throws IllegalArgumentException if jcomponent == null; region == null
         * @throws IllegalStateException if calling thread is not EventQueue's dispatch thread
         public static BufferedImage take(JComponent jcomponent, Rectangle region) throws IllegalArgumentException, IllegalStateException {
              if (jcomponent == null) throw new IllegalArgumentException("jcomponent == null");
              if (region == null) throw new IllegalArgumentException("region == null");
              if (!EventQueue.isDispatchThread()) throw new IllegalStateException("calling thread (" + Thread.currentThread().toString() + ") is not EventQueue's dispatch thread");
              boolean opaquenessOriginal = jcomponent.isOpaque();
              Graphics2D g2d = null;
              try {
                   jcomponent.setOpaque( true );
                   BufferedImage image = new BufferedImage(region.width, region.height, imageType);
                   g2d = image.createGraphics();
                   g2d.translate(-region.x, -region.y) ;     // CRITICAL: this and the next line are what make region relative to component
                   g2d.setClip( region );
                   jcomponent.paint( g2d );
                   return image;
              finally {
                   jcomponent.setOpaque( opaquenessOriginal );
                   if (g2d != null) g2d.dispose();
         // -------------------- write --------------------
         * Writes image to a newly created File named fileName.
         * The graphics format will either be the extension found in fileName
         * or else {@link #formatNameDefault} if no extension exists.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param fileName name of the File that will write image to
         * @throws IllegalArgumentException if image == null; fileName is blank
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String fileName) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(fileName)) throw new IllegalArgumentException("fileName is blank");
              File file = new File(fileName);
              String formatName = FileUtil.getExtension(file);
              if (formatName.length() == 0) formatName = formatNameDefault;
              write(image, formatName, file);
         * Writes image to file in the format specified by formatName.
         * <p>
         * Any thread may call this method.
         * <p>
         * @param image the BufferedImage to be written
         * @param formatName the graphics file format (e.g. "pnj", "jpeg", etc);
         * must be in the same set of values supported by the formatName arg of {@link ImageIO#write(RenderedImage, String, File)}
         * @param file the File that will write image to
         * @throws IllegalArgumentException if image == null; type is blank; file == null
         * @throws IOException if an I/O problem occurs
         public static void write(BufferedImage image, String formatName, File file) throws IllegalArgumentException, IOException {
              if (image == null) throw new IllegalArgumentException("image == null");
              if (StringUtil.isBlank(formatName)) throw new IllegalArgumentException("formatName is blank");
              if (file == null) throw new IllegalArgumentException("file == null");
              ImageIO.write(image, formatName, file);
         // -------------------- Test (inner class) --------------------
         * An inner class that consists solely of test code for the parent class.
         * <p>
         * Putting all the test code in this inner class (rather than a <code>main</code> method of the parent class) has the following benefits:
         * <ol>
         *  <li>test code is cleanly separated from working code</li>
         *  <li>any <code>main</code> method in the parent class is now reserved for a true program entry point</li>
         *  <li>test code may be easily excluded from the shipping product by removing all the Test class files (e.g. on Windoze, delete all files that end with <code>$Test.class</code>)</li>
         * </ol>
         * Putting all the test code in this inner class (rather than a shadow external class) has the following benefits:
         * <ol>
         *  <li>non-public members may be accessed</li>
         *  <li>the test code lives very close to (so is easy to find) yet is distinct from the working code</li>
         *  <li>there is no need to set up a test package structure</li>
         * </ol>
         public static class Test {
              public static void main(String[] args) throws Exception {
                   Gui gui = new Gui();
                   EventQueue.invokeLater( gui.getBuilder() );
                   new Timer(1000, gui.getTimerActionListener()).start();
              private static class Gui {
                   private Frame frame;
                   private TextField textField;
                   private JFrame jframe;
                   private JLabel jlabel;
                   private JPanel jpanel;
                   private int count = 0;
                   private Runnable getBuilder() {
                        return new Runnable() {
                             public void run() {
                                  System.out.println("Creating a Frame with AWT widgets inside...");
                                  frame = new Frame("ScreenShot.Test.main Frame");
                                  textField = new TextField();
                                  textField.setText( "Waiting for the screen shot process to automatically start..." );
                                  frame.add(textField);                              
                                  frame.pack();
                                  frame.setLocationRelativeTo(null);     // null will center it in the middle of the screen
                                  frame.setVisible(true);
                                  System.out.println("Creating a JFrame with Swing widgets inside...");
                                  jframe = new JFrame("ScreenShot.Test.main JFrame");
                                  jlabel = new JLabel(
                                       "<html>" +
                                            "To be, or not to be: that is the question:" + "<br>" +
                                            "Whether 'tis nobler in the mind to suffer" + "<br>" +
                                            "The slings and arrows of outrageous fortune," + "<br>" +
                                            "Or to take arms against a sea of troubles," + "<br>" +
                                            "And by opposing end them?" + "<br>" +
                                            "To die: to sleep; No more;" + "<br>" +
                                            "and by a sleep to say we end" + "<br>" +
                                            "The heart-ache and the thousand natural shocks" + "<br>" +
                                            "That flesh is heir to," + "<br>" +
                                            "'tis a consummation Devoutly to be wish'd." + "<br>" +
                                       "</html>"
                                  jpanel = new JPanel();
                                  jpanel.setBorder( BorderFactory.createEmptyBorder(20, 20, 20, 20) );
                                  jpanel.add(jlabel);
                                  jframe.getContentPane().add(jpanel);
                                  jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                  jframe.pack();
                                  Point p = frame.getLocation();
                                  p.translate(0, frame.getSize().height  + 10);
                                  jframe.setLocation(p);
                                  jframe.setVisible(true);
                   private ActionListener getTimerActionListener() {
                        return new ActionListener() {
                             public void actionPerformed(ActionEvent evt) {
                                  try {
                                       switch (count++) {
                                            case 0:
                                                 displayMessage("Taking a screen shot of the entire desktop...");
                                                 ScreenShot.write( ScreenShot.take(), "desktop.png" );
                                                 break;
                                            case 1:
                                                 displayMessage("Taking a screen shot of the central rectangle of the desktop...");
                                                 Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
                                                 Rectangle region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(region), "desktopCenteredRectangle.png" );
                                                 break;
                                            case 2:
                                                 displayMessage("Taking a screen shot of the TextField...");
                                                 ScreenShot.write( ScreenShot.take(textField), "textField.png" );
                                                 break;
                                            case 3:
                                                 displayMessage("Taking a screen shot of the central rectangle of the TextField...");
                                                 d = textField.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(textField, region), "textFieldCenteredRectangle.png" );
                                                 break;
                                            case 4:
                                                 displayMessage("Taking a screen shot of the JLabel...");
                                                 ScreenShot.write( ScreenShot.take(jlabel), "jlabel.png" );
                                                 break;
                                            case 5:
                                                 displayMessage("Taking a screen shot of the central rectangle of the JLabel...");
                                                 d = jpanel.getSize();
                                                 region = getCenteredRectangle(d);
                                                 ScreenShot.write( ScreenShot.take(jpanel, region), "jpanelCenteredRectangle.png" );
                                                 break;
                                            default:
                                                 System.exit(0);
                                                 break;
                                  catch (Throwable t) {
                                       t.printStackTrace(System.err);
                             private void displayMessage(String text) {
                                  System.out.println(text);
                                  textField.setText(text);
                                  frame.pack();
                                  frame.invalidate();
                             private Rectangle getCenteredRectangle(Dimension d) {
                                  int x = d.width / 4;
                                  int y = d.height / 4;
                                  int width = d.width / 2;
                                  int height = d.height / 2;
                                  return new Rectangle(x, y, width, height);
    }

  • How to fine tune your GUI?

    Hello!
    I am pretty new at Java and i have search for information about how to fine tune your GUI but have not found anything.
    Last time when i wrote a program with a GUI I manually placed out all the widgets. This time I was thinking to give the layotmanager another go. But when I do I cant seem to easly place things exactly where I whant.
    For instance in this code, all my buttons are to the left in the boarder layout north part.
    I whant to learn:
    How do I move all the buttons to the right, little further down, etcetera to my specifications
    Please if someone could provide me a link to a website, tip on what I need to search for. So I can learn how to do this when you mix diffrent layoutmanager in one GUI.
    Example of my code:
    //Import java library
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionListener;
    public class View_Inlupp2 {
         //*****GUI Components
         //Menu File Items
         private JMenuItem New = new JMenuItem("New");
         private JMenuItem Open = new JMenuItem("Open");
         private JMenuItem Save = new JMenuItem("Save");
         private JMenuItem Save_As = new JMenuItem("Save as");
         //Menu Operations Items
         private JMenuItem Find_Route = new JMenuItem("Find Route");
         private JMenuItem Show_Connections = new JMenuItem("Show Connections");
         private JMenuItem New_Place = new JMenuItem("New Place");
         private JMenuItem New_Connection = new JMenuItem("New Connection");
         private JMenuItem Change_Connection = new JMenuItem("Change Connection");
         //Top field
         private JButton Find_RouteBtn = new JButton("Find Route");
         private JButton Show_ConnectionsBtn = new JButton("Show Connections");
         private JButton New_PlaceBtn = new JButton("New Place");
         private JButton New_ConnectionBtn = new JButton("New Connection");
         private JButton Change_ConnectionBtn = new JButton("Change Connection");
         //Left side
         //Center
         public View_Inlupp2() {
              //Create and show the GUI.
              createAndShowGUI();
         //**********GUI Structure
         private JPanel createContentPane() {
              //Create the JPanel where we will put everything on
              JPanel totalGUI = new JPanel();
              //Set totalGui to have a BorderLayout with a horizontal
              //gap of 10 and a vertical gap of 10 between each widget
              totalGUI.setLayout(new BorderLayout(10, 10));
              //*****Top Field
              //Create a holder for the buttons with a BoxLayout.LINE_AXIS
              JPanel top = new JPanel();
              top.setLayout(new BoxLayout(top, BoxLayout.LINE_AXIS));
              top.add(Find_RouteBtn);
              top.add(Show_ConnectionsBtn);
              top.add(New_PlaceBtn);
              top.add(New_ConnectionBtn);
              top.add(Change_ConnectionBtn);
              //*****Put our GUI together and add all the widgets to our totalGUI
              totalGUI.add(top, BorderLayout.NORTH);
              totalGUI.setOpaque(true);
              return totalGUI;
         private JMenuBar createMenuBar() {
              //Create a menuBar
              JMenuBar menuBar = new JMenuBar();
              //Create menus
              JMenu File = new JMenu("File");
              JMenu Operations = new JMenu("Operations");
              //Add menus to menuBar
              menuBar.add(File);
              menuBar.add(Operations);
              //Add menuItems to the File menu
              File.add(New);
              File.add(Open);
              File.add(Save);
              File.add(Save_As);
              //Add menuItems to the Operations menu
              Operations.add(Find_Route);
              Operations.add(Show_Connections);
              Operations.add(New_Place);
              Operations.add(New_Connection);
              Operations.add(Change_Connection);
              return menuBar;
         //**********Create the window frame
         //Create the frame and add the created content pane.
         private void createAndShowGUI() {
              JFrame.setDefaultLookAndFeelDecorated(true); //The program look the same on Windows, Mac and Linux
              JFrame frame = new JFrame("Inlupp2");
              //Set the ContentPane, menuBar, and the settings for our window
              frame.setContentPane(createContentPane());
              frame.setJMenuBar(createMenuBar());
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.setSize(1024, 640);
              //frame.setResizable(false);
              frame.setVisible(true);
         //**********Interaction
         //Add the ActionListener passed by the Controller to each of the buttons
         public void buttonActionListeners(ActionListener al) {
         }//End buttonActionListener
    }//End class

    First of all, learn and use proper Java naming conventions. All text books, tutorial and code examples on the forums use these naming conventions. So don't make up your own. Variable names should NOT start with an upper case character.
    By default a JPanel uses a FlowLayout. Read the API to learn how to change the default left alignment to center or right.
    If you want extra space around a panel you can use an EmptyBorder.
    Both of these topics are covered in the Swing tutorial and you've been given the link to the tutorial in the past.
    Also, the code you posted is not executable so we can't see the problems you attempt to descripe.
    If you need further help then you need to create a [Short, Self Contained, Compilable and Executable, Example Program (SSCCE)|http://sscce.org], that demonstrates the incorrect behaviour.

  • How to create printable report from a swing app.

    Hi,
    I have googled quite a bit and have searched the forum extensively but haven't found answers to my questions.
    I have a small swing based application (that uses jtextfields, jbuttons, jlist, etc) that collects information from user
    and stores in some variables; which are like strings, integers, hashmap, etc.
    Now this information is to be formatted and is to be printed as a report.
    Formatted as in, some part of the collected text is to be printed in certain font and other in different color and so on.
    Also the report is to be printed on a paper leaving some space at left and at the top. That means margins need to be set.
    And before all info is to be sent to printer I need to display this information in some report viewer (preview).
    How can I format certain text and set margins? (Is there some Document kind of api which allows me to set margins, change font of certain text?)
    How should I display this text / information as a print preview? (Should I use jeditorpane / jtextpane ?)
    How should I send all the information to the printer? (What java api should be used for printing?)
    The data entered by the user is not saved / persisted to any database. It's to be sent to the printer after submit button is pressed on the swing app.
    Since there is no database I couldn't use jasper-reports.
    Following are links to all threads (not useful) I found when I searched for swing / print / report in the forum :
    http://forums.sun.com/thread.jspa?forumID=331&threadID=225351
    http://forums.sun.com/thread.jspa?forumID=57&threadID=576758
    http://forums.sun.com/thread.jspa?forumID=57&threadID=570629
    http://forums.sun.com/thread.jspa?forumID=1&threadID=489905
    http://forums.sun.com/thread.jspa?forumID=57&threadID=571093
    http://forums.sun.com/thread.jspa?forumID=257&threadID=138450
    http://forums.sun.com/thread.jspa?forumID=57&threadID=583150
    http://forums.sun.com/thread.jspa?forumID=57&threadID=5399572
    http://forums.sun.com/thread.jspa?forumID=57&threadID=579619
    http://forums.sun.com/thread.jspa?forumID=57&threadID=593199
    Help would be much appreciated.

    alan_mehio wrote:
    The simplest thing to do in your case is to load the file content into the JTextArea
    then to create the header and the footer if there is any from java.text.MessageFormat
    then you invoke the print method on the JTextArea instance object> Just let me know if you are face any furrher problem
    Alan Mehio,
    I have been able to set margins and get the printout just the way I want it (after some experiments / trial & error).
    But the problem is, parameters to paper.setImageableArea() are hard coded as in the example code below :
            System.out.println("print?");
            PrinterJob printJob = PrinterJob.getPrinterJob();
            if (printJob.printDialog()) {
                PageFormat pf = printJob.defaultPage();
                Paper paper = pf.getPaper();
                paper.setSize(8.5 * 72, 11 * 72);
                System.out.println("paper width : " + paper.getWidth());// expecting 612
                System.out.println("paper height : " + paper.getHeight());// expecting 792
                System.out.println("ImageableHeight : " + paper.getImageableHeight());
                System.out.println("imageable width : " + paper.getImageableWidth());
                System.out.println("ImageableX : " + paper.getImageableX());
                System.out.println("Imageable y : " + paper.getImageableY());
                //paper.setImageableArea(108, 144, paper.getWidth() - 108, paper.getHeight() - 144);
                paper.setImageableArea(222, 244, paper.getWidth() - 222, paper.getHeight() - 244);
                pf.setPaper(paper);
                printJob.setPrintable(jTextArea1.getPrintable(null, null), pf);
                try {
                    printJob.print();
                } catch (Exception ex) {
                    System.out.println("exception while printing...");
                    ex.printStackTrace();
            }In my case the left margin should be 1.5 inches (38.1mm) and top margin should be 2 inches (50.8 mm)
    Considering 72dpi printer for a A4 size page (8.5in X 11in), the parameters to paper.setImageableArea() should be
    (108, 144, paper.getWidth() - 108, paper.getHeight() - 144);
    But the printout leaves only 1inch for top and left margins.
    Here are o/p lines for method-call with above said params :
    paper width : 612.0
    paper height : 792.0
    ImageableHeight : 648.0
    imageable width : 468.0
    ImageableX : 72.0
    Imageable y : 72.0
    When I pass the following values I get text printed with desired margins on the paper but the above printlns remain exactly the same!
    paper.setImageableArea(222.4, 244, paper.getWidth() - 222.4, paper.getHeight() - 244);
    Although I have been able to achieve what I wanted to without using 3rd party libraries,
    I feel this hard coding of values isn't a good idea and leaves a doubt whether this will work on other systems with different printers.
    My question is, how to get these numbers correct every time? Is there a formula for obtaining these numbers?
    Also formatting of certain part of to-print text is something that is yet to be figured out.
    Thanks.

  • How to do a dropdownlist in java Swing much like a JMenuBar items

    Hi sir,
    Here i want to know how to do a dropdownlist in java swing much like a JMenuBar items falling from the top to bottom .Here i should not use JMenuBar in any way.
    So that i need to do the dropdownlist by using other feature only.Since i am new to this.I need ur help urgently.Pls do provide the code for this so that i will be so gratefull to u.It is very Urgent.Since i have involved in a project which involves this feature.Pls. do provide the answer as well as the code quickly as possible.
    Thanx
    m.ananthu

    use JComboBox
    http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html

  • I'm a new java learner from china,how should I start my journey?

    I have never learned java before,how should I start it? Dose it hard to learn?
    At the beginning,which part of it should I learn?
    Thank you !

    Advice:
    1. Learn the basics with simple command line applications first. Don't worry about complicated topics like Swing, databases, Web applications, etc. for at six months
    2. After you learn how to write, compile & run programs with just a text editor & Java compiler, download & learn to use an Integrated Development Environment, such as Eclipse. Especially, learn how to use the debugger that comes with the IDE.
    3. Experiment with lots of small programs & examples. Learn by doing (and by making mistakes).
    4 Find others in your community who use Java & learn from them.

  • How close is the workflow & GUI in PrE 10 to PrE 8?

    Actually, I'm not sure I'm asking in the right place - is "Discussion" the same as "Forum"? It's been awhile since I've posted in the forum and things have changed a lot. I seem to be going around in circles. (You know you're in trouble when you don't even know how to use the help forum :).
    My one question became two when I tried to use this forum.
    1) How close is the workflow & GUI in PrE 10 to PrE 8? Would a PrE8 manual be much use for PrE10? (Note: The last version I worked with is PrE 2 so I should know the basics. I just have to learn where everything is now).
    2) I'd like to read through all the questions in the forum, but all I can see are titles under "Trending Questions". Is that the way it is now? I'd like to expand the question list so I can read the first few sentences - is there a way to do that? I used to learn a lot reading through the forums, but titles alone aren't very helpful.

    Some links/reading to help
    Steve's Basic Training Tutorials http://forums.adobe.com/thread/537685
    -v10 http://www.amazon.com/Muvipix-com-Guide-Premiere-Elements-Version/dp/1466286377/
    FAQ http://forums.adobe.com/community/premiere_elements/premiere_elements_faq
    TIPS http://forums.adobe.com/community/premiere_elements/premiere_elements_tips
    Another help site http://muvipix.com/ or http://muvipix.com/phpBB3/
    User Guide PDF http://help.adobe.com/en_US/premiereelements/using/index.html
    Right click PDF link in the upper right corner and select to save to your hard drive
    Also... BRAVO! for asking about how to learn the program before just jumping in !!!

  • How to kill the hanged JFrame in swing?

    How to kill the hanged frame in swing?
    I am opening multiple JFrame and working on them.These frames are plcaed in JDesktopPane.
    If one frame is hanged up then i could not work on others .
    I need to kill the hanged frame.
    Assist me.

    am opening multiple JFrame and working on them.These frames are plcaed in JDesktopPaneWell, a JFrame, can't be added to a JDesktopPane, so your question doesn't even make sense.
    As was suggested earlier, if your GUI is unresponsive, then that means you are blocking the GUI EDT and the GUI can't respond to events. Don't do this.
    Read the Swing tutorial on Concurrency to understand why this happens and to learn the proper way to write GUI code so it won't happen.

  • How should I go about doing this exercise (networking/database related)

    Hey everyone
    As a learning exercise for myself, I've decided to write a basic web based chat room application. I'm going to:
    -allow users to create an account (store this info in a database)
    -force users to log in before entering a lobby (there will be multiple lobbies)
    -have users join a lobby, and then select one chatroom to join in that lobby
    -allow multiple users in each lobby and chatroom
    It is also going to be web based, so I want a user to be able to open a web page and then use the application without having to download/install it.
    My question is: How should I begin this project? As I can see it, I have a bunch of options, including using an applet or using java web start. What are my other options (if any)? What are the advantages/disadvantages of these options, and which would you use if you were creating a chatroom for a website that had hired you?
    Thanks for your help

    nightmares wrote:
    As a learning exercise for myself, I've decided to write a basic web based chat room application. I'm going to:
    -allow users to create an account (store this info in a database)
    -force users to log in before entering a lobby (there will be multiple lobbies)
    -have users join a lobby, and then select one chatroom to join in that lobby
    -allow multiple users in each lobby and chatroom
    It is also going to be web based, so I want a user to be able to open a web page and then use the application without having to download/install it.First of all, you haven't picked a trivial project ... but I bet you'll be a lot better by the time you've finished it.
    You've made a decent start by identifying some of the major functions that your chat room will support. You'll probably need to expand on it, and also determine the exact information requirements for those modules (For example: what will an account look like? What data will it hold? How will it interact with the other modules/classes in the chat room? What does your Lobby need to do?).
    I'm not an expert in web-based programming, but there are a few "unversals" to good design that might help (and provide you with some things to Google). It's probably going to sound like CD-101, but here goes:
    1. Pick a good development platform - You could do this with Notepad; but I don't advise it. You're going to have to manage a lot of complexity, and IDEs are the way to go. I don't want to start a war here, but both NetBeans and Eclipse have the tools for this sort of project - and they're free.
    2. Think what+, not how+ - ...at least to begin with :-). This is probably the hardest thing for newbies to learn, because they're just dying to get started on the code. Decide what you want to do before you dive into the how. You may find you change your mind about the how before you come to code. You may also find that somebody's already written a piece of code or library to do just what you want. As a very simple example: sendMessage() is a 'what' method; openSocket() is the 'how'.
    3. Loose coupling - as far as possible, keep your methods and classes self-contained and well-focused. This general principle also applies to system components - try to make sure that each one is well-defined and "talks" to other components in a well specified manner. There are several design patterns for the type of thing you want to do, but you might want to start with MVC (Model/View/Control). It'll also help you when you want to test (see below).
    4. Good naming - '*i*' may be a perfectly good name in a 'for' loop, but it's pretty useless outside it. Make your variable and method names mean something. There are also several conventions that other Java programmers expect, so you might want to [start here.|http://java.sun.com/docs/codeconv/]
    4. Think big, but start small - For example, a good 'test of concept' might be to get your chat room running on your local machine using a local database first. Providing you're using all the middleware you'll be using for your 'finished' version (eg, Tomcat), porting to the Internet shouldn't be too onorous (but it's unlikely to be completely glitch-free).
    5. Test, test, test - Test everything you do. It sounds boring, but good testing can actually highlight design problems. Find out a bit about it (eg, smoke tests, boundary checks) and try and find a tool that fits your needs. [This page|http://java-source.net/open-source/web-testing-tools] has a few suggestions.
    6. Document - Another snorer, but vital. javadoc is your friend, but you'll probably want other forms of documentation as well. UML wouldn't be a bad place to start.
    7. And finally, read - there's a lot to know about this stuff, and it's changing all the time. Here's a few pointers to get you going:
    - Database comms/Persistence/Model - JPA, Hibernate, JDBC.
    - Databases - MySQL, Derby, Oracle, DB2, SQLServer; also some [others here.|http://java-source.net/open-source/database-engines]
    - View - JSP, Struts, Ajax, Swing (non-web)
    - Control - Servlets, EJB, Tomcat, Jetty
    - Testing - JUnit
    - Communication/Messaging - JMS, SOAP
    - Other: ant, jar, war, ear, xml
    If you have any mates in the biz, you might want to talk to them too. An ounce of experience is worth a pound of heartache.
    HIH
    Winston
    Edited by: YoungWinston on Jul 30, 2009 3:33 AM

  • How can i find SAP Gui logon pad version

    how can i find SAP Gui logon pad version ?

    Hi,
    That's easy. At the top of the logon, you see a title bar with a general version indication. At the most left of it, you'll see an icon. Click on that and choose about SAP logon and you'll get detailed info.
    Eddy
    PS. Reward the useful answers and you will get <a href="http:///people/baris.buyuktanir2/blog/2007/04/04/point-for-points-reward-yourself">one point</a> yourself!

  • Hi, I have a macbook pro 10.6.8 and an iphone 4s. I have already created an icloud account. I want my normal mails to be saved on icloud. how should i go about?

    Hi, I have a macbook pro 10.6.8 and an iphone 4s. I have already created an icloud account. I want my normal mails to be saved on icloud. how should i go about?

    I'm not sure I understand your question really, but one thing for sure is that you need Lion for iCloud to work.

  • I have few PDf files on my computer and I want to add them to my ipod touch, please tell me the procedure on how should I do that? Secondly I want to run these Pdf files through the ibook app, as it also have the Pdf file sections

    I have few PDf files on my computer and I want to add them to my ipod touch, please tell me the procedure on how should I do that? Secondly I want to run these Pdf files through the ibook app, as it also have the Pdf file sections

    You should be able to just place them in your Books library in iTunes and check to ensure that your Book library is configured to sync to your iPod when you sync your iPod to iTunes.

  • How should I set GPG to use with KMail or even rather Thunderbird?

    In the last 3 hours I tried to set Thunderbird (Enigmail) and KMail to use my GPG key. I failed.
    I made the keypairs with Kgpg, installed enigmail, restarted the Thunderbird, set everything, but TB didn't asked for password, only gave an error message that it can't use gpg in batch mode and the password is wrong:
    gpg parancssor és kimenet:
    /usr/bin/gpg
    gpg: Probléma van az ügynökkel. Letiltom a használatát.
    gpg: can't query passphrase in batch mode
    gpg: Érvénytelen jelszó. Próbálja újra...
    gpg: can't query passphrase in batch mode
    gpg: Érvénytelen jelszó. Próbálja újra...
    gpg: can't query passphrase in batch mode
    gpg: skipped "<my e-mail>": rossz jelszó
    gpg: [stdin]: sign+encrypt failed: rossz jelszó - its in Hungarian, it says: Problem with the agent. Disabling use. Wrong password. Try again.
    I read a lot and all I found is that I have to disable the use of gpg-agent in Enigmail's settings, but it was alredy disabled, despite I got this message:
    "Your system uses gpg-agent or a similar tool for passphrase handling (gpg-agent is mandatory if GnuPG v2.0 or later is used). Since caching of passphrases is handled by gpg-agent, the respective timeout settings in OpenPGP are disregarded. In order to change passphrase caching options, please configure your gpg-agent tool."
    After many pages I gave up, it seems it cannot be solved.
    So I tried KMail. But KMail didn't ask password, too. Google, searching. I found that I should install pinentry-qt. Well, pinentry is already installed and I have pinentry, pinentry-qt and pinentry-qt4, too. So I searched for another solution. Then I found that I should use gpg-agent (I used it already according to Thunderbird) and I have to write use-agent to .gnupg/gpg.conf. It was already there. Then I found that I have to make a file, .gnupg/gpg-agent.conf whit this content:
    pinentry-program /usr/bin/pinentry-qt4
    no-grab
    default-cache-ttl 1800
    So I made it. After this I add the eval "$(gpg-agent --daemon)" to my .xinitrc, as it was written in many posts. I logged out and in. Still no luck.
    The gpg-agent in terminal says:
    gpg-agent: gpg-agent running and available
    I tried a test I found on forums: echo "test" | gpg -ase -r 0xDEADBEEF | gpg. It says:
    1024-bit RSA key, ID CFF2728D, created 2011-05-17 (main key ID CD35B00C)
    gpg: problem with the agent -disabling agent use.
    Then it asks the passphrase. I type it in, but then a message appears that I didn't have any public key.
    I tried to disable gpg-agent, but didn't helped. Thunderbird said:
    "can't connect to `/tmp/gpg-y2XPqU/S.gpg-agent': Kapcsolat elutasítva
    gpg: Nem tudok kapcsolódni "/tmp/gpg-y2XPqU/S.gpg-agent" objektumhoz: connect failed" - connection refused. Can't connect to /tmp... object.
    KMail simply says bad passphrase.
    So. How can I use GPG? What should I do, how should I start? Is it possible at all? I just wanted to sign and encrypt e-mails. It seemed very easy.
    ps.: all the installed softwares are up to dated. And sorry about the mistakes in my English, if any!

    Hi Melfour-
    Here is a Support article detailing how to work with your Firefox PDF preferences:
    [[Opening PDF files within Firefox]]
    Hope that helps.

Maybe you are looking for