List of usage examples for javax.swing JFrame setLocation
@Override public void setLocation(int x, int y)
The method changes the geometry-related data.
From source file:edu.pdi2.visual.ViewSignature.java
public ViewSignature(String name, byte[] sign) { super();// ww w . jav a2s .c om XYSeries signature = new XYSeries("Signature"); for (int i = 0; i < sign.length; i++) { signature.add(i, sign[i]); } JFrame frame = new JFrame(); XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(signature); JFreeChart signatureG = ChartFactory.createXYLineChart("Signature " + name, "Valorx", "Valory", dataset, PlotOrientation.VERTICAL, true, true, false); ChartPanel chartpanel = new ChartPanel(signatureG); chartpanel.setPreferredSize(new Dimension(390, 290)); frame.setContentPane(chartpanel); frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); frame.pack(); frame.setSize(400, 300); frame.setVisible(true); if (name == " RED") frame.setLocation(0, 300); else frame.setLocation(400, 300); }
From source file:tn.mariages.gui.Accueil.java
private void formWindowOpened(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowOpened int h = Toolkit.getDefaultToolkit().getScreenSize().height; int w = Toolkit.getDefaultToolkit().getScreenSize().width; Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation(-27, -16); this.setSize(144, h + 16); this.setExtendedState(this.MAXIMIZED_VERT); System.out.println("H " + h); JFrame LogoFrame = new JFrame("Logo"); LogoFrame.setSize(w - 45, h + 16);/*from w w w.j a v a2 s. c o m*/ LogoFrame.setExtendedState(this.MAXIMIZED_HORIZ); this.setAlwaysOnTop(true); //LogoFrame.setExtendedState(LogoFrame.MAXIMIZED_BOTH); LogoFrame.setLocation(65, -16); JPanel logoPanel = new JPanel(); LogoFrame.add(logoPanel); ImageIcon icon; try { icon = new ImageIcon(new URL("http://www.images.tn/upload/original/1394208853.png")); /// TO CHANGE icon = new ImageIcon(icon.getImage().getScaledInstance(400, 400, BufferedImage.SCALE_SMOOTH)); JLabel logoLabel = new JLabel(icon); logoPanel.add(logoLabel); logoLabel.setAlignmentX(CENTER_ALIGNMENT); logoLabel.setAlignmentY(400); } catch (MalformedURLException ex) { Logger.getLogger(ListeFeatProd.class.getName()).log(Level.SEVERE, null, ex); } LogoFrame.setVisible(true); // TODO add your handling code here: }
From source file:org.obiba.onyx.jade.instrument.gehealthcare.CardiosoftInstrumentRunner.java
/** * Create an information dialog that tells the user to wait while the data is being processed. *//*from w w w . ja va 2s.co m*/ private void showProcessingDialog() { JPanel messagePanel = new JPanel(); messagePanel.setAlignmentX(Component.CENTER_ALIGNMENT); messagePanel.setLayout(new BoxLayout(messagePanel, BoxLayout.Y_AXIS)); JLabel message = new JLabel(ecgResourceBundle.getString("Message.ProcessingEcgMeasurement")); message.setFont(new Font(Font.DIALOG, Font.PLAIN, 20)); messagePanel.add(message); JLabel subMessage = new JLabel(ecgResourceBundle.getString("Message.ProcessingEcgMeasurementInstructions")); subMessage.setFont(new Font(Font.DIALOG, Font.PLAIN, 14)); subMessage.setForeground(Color.RED); messagePanel.add(subMessage); JFrame window = new JFrame(); window.add(messagePanel); window.pack(); // Make sure dialog stays on top of all other application windows. window.setAlwaysOnTop(true); window.setLocationByPlatform(true); // Center dialog horizontally at the bottom of the screen. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); window.setLocation((screenSize.width - window.getWidth()) / 2, screenSize.height - window.getHeight() - 70); window.setEnabled(false); window.setVisible(true); }
From source file:view.ResultsPanel.java
public void showHistogram(List<ElementaryMode> modes) { //for the JTable DefaultTableModel tableModel = new DefaultTableModel(); JTable tableResult = new JTable(); tableResult.setModel(tableModel);/*w w w . j av a2 s.c om*/ tableModel.addColumn("Reaction"); tableModel.addColumn("Presence in the modes"); tableResult.setAutoCreateRowSorter(true); Map<Reaction, Double> stats = new HashMap<Reaction, Double>(); DecimalFormat df = new DecimalFormat("0.00"); for (ElementaryMode em : modes) { for (Reaction r : em.getContent().keySet()) { if (em.getContent().containsKey(r)) { if (!stats.containsKey(r)) { stats.put(r, 1.0); } else { Reaction key = r; Double value = stats.get(r) + 1; stats.remove(key); stats.put(key, value); } } } } for (Reaction r : stats.keySet()) { tableModel .addRow(new Object[] { r, String.valueOf(df.format(stats.get(r) * 100 / modes.size())) + "%" }); } JFrame statisticFrame = new JFrame(); statisticFrame.add(new JScrollPane(tableResult), BorderLayout.CENTER); statisticFrame.setVisible(true); statisticFrame.setSize(400, 350); statisticFrame.setTitle("Representativeness of each reaction"); statisticFrame.setLocation(500, 600); //histogram DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Map<Integer, Integer> data = new TreeMap<Integer, Integer>(); int maxSize = 0; for (ElementaryMode em : modes) { int modeLength = em.getContent().size(); if (modeLength > maxSize) { maxSize = modeLength; } if (data.containsKey(modeLength)) { int value = data.get(modeLength) + 1; data.put(modeLength, value); } else { data.put(modeLength, 1); } } for (int i = 1; i < maxSize; i++) { if (!data.containsKey(i)) { data.put(i, 0); } } for (int key : data.keySet()) { dataset.addValue(Integer.valueOf((data.get(key))), "test", Integer.valueOf(key)); } String plotTitle = "Number of reactions per elementary mode"; String xaxis = "Reaction number"; String yaxis = "Elementary mode number"; PlotOrientation orientation = PlotOrientation.VERTICAL; boolean show = false; boolean toolTips = false; boolean urls = false; JFreeChart chart = ChartFactory.createBarChart3D(plotTitle, xaxis, yaxis, dataset, orientation, show, toolTips, urls); CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis axis = plot.getDomainAxis(); plot.getDomainAxis(0).setLabelFont(plot.getDomainAxis().getLabelFont().deriveFont(new Float(11))); ChartFrame frame = new ChartFrame("Elementary modes", chart); frame.setVisible(true); frame.setSize(400, 350); frame.setLocation(500, 100); }
From source file:ConfigFiles.java
public ConfigFiles(Dimension screensize) { // initializeFileBrowser(); paths = new JPanel(); paths.setBackground(Color.WHITE); //paths.setBorder(BorderFactory.createTitledBorder("Paths")); paths.setLayout(null);//from w ww .j a v a 2 s . c om paths.setPreferredSize(new Dimension(930, 1144)); paths.setSize(new Dimension(930, 1144)); paths.setMinimumSize(new Dimension(930, 1144)); paths.setMaximumSize(new Dimension(930, 1144)); //paths.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED)); setLayout(null); ttcpath = new JTextField(); addPanel("TestCase Source Path", "Master directory with the test cases that can" + " be run by the framework", ttcpath, RunnerRepository.TESTSUITEPATH, 10, true, null); tMasterXML = new JTextField(); tUsers = new JTextField(); addPanel("Projects Path", "Location of projects XML files", tUsers, RunnerRepository.REMOTEUSERSDIRECTORY, 83, true, null); tSuites = new JTextField(); addPanel("Predefined Suites Path", "Location of predefined suites", tSuites, RunnerRepository.PREDEFINEDSUITES, 156, true, null); testconfigpath = new JTextField(); addPanel("Test Configuration Path", "Test Configuration path", testconfigpath, RunnerRepository.TESTCONFIGPATH, 303, true, null); tepid = new JTextField(); addPanel("EP name File", "Location of the file that contains" + " the Ep name list", tepid, RunnerRepository.REMOTEEPIDDIR, 595, true, null); tlog = new JTextField(); addPanel("Logs Path", "Location of the directory that stores the most recent log files." + " The files are re-used each Run.", tlog, RunnerRepository.LOGSPATH, 667, true, null); tsecondarylog = new JTextField(); JPanel p = addPanel("Secondary Logs Path", "Location of the directory that archives copies of the most recent log files, with" + " original file names appended with <.epoch time>", tsecondarylog, RunnerRepository.SECONDARYLOGSPATH, 930, true, null); logsenabled.setSelected(Boolean.parseBoolean(RunnerRepository.PATHENABLED)); logsenabled.setBackground(Color.WHITE); p.add(logsenabled); JPanel p7 = new JPanel(); p7.setBackground(Color.WHITE); TitledBorder border7 = BorderFactory.createTitledBorder("Log Files"); border7.setTitleFont(new Font("Arial", Font.PLAIN, 14)); border7.setBorder(BorderFactory.createLineBorder(new Color(150, 150, 150), 1)); p7.setBorder(border7); p7.setLayout(new BoxLayout(p7, BoxLayout.Y_AXIS)); p7.setBounds(80, 740, 800, 190); paths.add(p7); JTextArea log2 = new JTextArea("All the log files that will be monitored"); log2.setWrapStyleWord(true); log2.setLineWrap(true); log2.setEditable(false); log2.setCursor(null); log2.setOpaque(false); log2.setFocusable(false); log2.setBorder(null); log2.setFont(new Font("Arial", Font.PLAIN, 12)); log2.setBackground(getBackground()); log2.setMaximumSize(new Dimension(170, 25)); log2.setPreferredSize(new Dimension(170, 25)); JPanel p71 = new JPanel(); p71.setBackground(Color.WHITE); p71.setLayout(new GridLayout()); p71.setMaximumSize(new Dimension(700, 13)); p71.setPreferredSize(new Dimension(700, 13)); p71.add(log2); JPanel p72 = new JPanel(); p72.setBackground(Color.WHITE); p72.setLayout(new BoxLayout(p72, BoxLayout.Y_AXIS)); trunning = new JTextField(); p72.add(addField(trunning, "Running: ", 0)); tdebug = new JTextField(); p72.add(addField(tdebug, "Debug: ", 1)); tsummary = new JTextField(); p72.add(addField(tsummary, "Summary: ", 2)); tinfo = new JTextField(); p72.add(addField(tinfo, "Info: ", 3)); tcli = new JTextField(); p72.add(addField(tcli, "Cli: ", 4)); p7.add(p71); p7.add(p72); libpath = new JTextField(); addPanel("Library path", "Secondary user library path", libpath, RunnerRepository.REMOTELIBRARY, 229, true, null); JPanel p8 = new JPanel(); p8.setBackground(Color.WHITE); TitledBorder border8 = BorderFactory.createTitledBorder("File"); border8.setTitleFont(new Font("Arial", Font.PLAIN, 14)); border8.setBorder(BorderFactory.createLineBorder(new Color(150, 150, 150), 1)); p8.setBorder(border8); p8.setLayout(null); p8.setBounds(80, 1076, 800, 50); if (PermissionValidator.canChangeFWM()) { paths.add(p8); } JButton save = new JButton("Save"); save.setToolTipText("Save and automatically load config"); save.setBounds(490, 20, 70, 20); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { saveXML(false, "fwmconfig"); loadConfig("fwmconfig.xml"); } }); p8.add(save); // if(!PermissionValidator.canChangeFWM()){ // save.setEnabled(false); // } JButton saveas = new JButton("Save as"); saveas.setBounds(570, 20, 90, 20); saveas.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { String filename = CustomDialog.showInputDialog(JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, ConfigFiles.this, "File Name", "Please enter file name"); if (!filename.equals("NULL")) { saveXML(false, filename); } } }); p8.add(saveas); final JButton loadXML = new JButton("Load Config"); loadXML.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { try { String[] configs = RunnerRepository .getRemoteFolderContent(RunnerRepository.USERHOME + "/twister/config/"); JComboBox combo = new JComboBox(configs); int resp = (Integer) CustomDialog.showDialog(combo, JOptionPane.INFORMATION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, ConfigFiles.this, "Config", null); final String config; if (resp == JOptionPane.OK_OPTION) config = combo.getSelectedItem().toString(); else config = null; if (config != null) { new Thread() { public void run() { setEnabledTabs(false); JFrame progress = new JFrame(); progress.setAlwaysOnTop(true); progress.setLocation((int) loadXML.getLocationOnScreen().getX(), (int) loadXML.getLocationOnScreen().getY()); progress.setUndecorated(true); JProgressBar bar = new JProgressBar(); bar.setIndeterminate(true); progress.add(bar); progress.pack(); progress.setVisible(true); loadConfig(config); progress.dispose(); setEnabledTabs(true); } }.start(); } } catch (Exception e) { e.printStackTrace(); } } }); loadXML.setBounds(670, 20, 120, 20); p8.add(loadXML); // if(!PermissionValidator.canChangeFWM()){ // loadXML.setEnabled(false); // } tdbfile = new JTextField(); addPanel("Database XML path", "File location for database configuration", tdbfile, RunnerRepository.REMOTEDATABASECONFIGPATH + RunnerRepository.REMOTEDATABASECONFIGFILE, 375, true, null); temailfile = new JTextField(); // emailpanel = (JPanel) addPanel("Email XML path", "File location for email configuration", temailfile, RunnerRepository.REMOTEEMAILCONFIGPATH + RunnerRepository.REMOTEEMAILCONFIGFILE, 448, true, null) .getParent(); //paths.remove(emailpanel); // emailpanel.setBounds(360,440,350,100); // RunnerRepository.window.mainpanel.p4.getEmails().add(emailpanel); tglobalsfile = new JTextField(); addPanel("Globals XML file", "File location for globals parameters", tglobalsfile, RunnerRepository.GLOBALSREMOTEFILE, 521, true, null); tceport = new JTextField(); addPanel("Central Engine Port", "Central Engine port", tceport, RunnerRepository.getCentralEnginePort(), 1003, false, null); // traPort = new JTextField(); // addPanel("Resource Allocator Port","Resource Allocator Port", // traPort,RunnerRepository.getResourceAllocatorPort(),808,false,null); // thttpPort = new JTextField(); // addPanel("HTTP Server Port","HTTP Server Port",thttpPort, // RunnerRepository.getHTTPServerPort(),740,false,null); //paths.add(loadXML); if (!PermissionValidator.canChangeFWM()) { ttcpath.setEnabled(false); tMasterXML.setEnabled(false); tUsers.setEnabled(false); tepid.setEnabled(false); tSuites.setEnabled(false); tlog.setEnabled(false); trunning.setEnabled(false); tdebug.setEnabled(false); tsummary.setEnabled(false); tinfo.setEnabled(false); tcli.setEnabled(false); tdbfile.setEnabled(false); temailfile.setEnabled(false); tceport.setEnabled(false); libpath.setEnabled(false); tsecondarylog.setEnabled(false); testconfigpath.setEnabled(false); tglobalsfile.setEnabled(false); logsenabled.setEnabled(false); } }
From source file:at.gv.egiz.bku.local.stal.LocalIdentityLinkSTALFactory.java
@Override public STAL createSTAL() { final LocalBKUWorker stal; //http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html // use undecorated JFrame instead of JWindow, // which creates an invisible owning frame and therefore cannot getFocusInWindow() JFrame dialog = new JFrame("Brgerkarte"); log.debug("AlwaysOnTop supported: {}.", dialog.isAlwaysOnTopSupported()); // [#439] make mocca dialog alwaysOnTop dialog.setAlwaysOnTop(true);// w ww. j a v a 2 s .c o m dialog.setIconImages(BKUIcons.icons); // dialog.setUndecorated(true); // dialog.getRootPane().setWindowDecorationStyle(JRootPane.NONE); if (locale != null) { dialog.setLocale(locale); } LocalHelpListener helpListener = null; if (helpURL != null) { helpListener = new LocalHelpListener(helpURL, locale); } else { log.warn("No HELP URL configured, help system disabled."); } IdentityLinkGUIFacade gui = new IdentityLinkGUI(dialog.getContentPane(), dialog.getLocale(), null, new ResourceFontLoader(), helpListener); BKUGUIFacade proxy = (BKUGUIFacade) GUIProxy.newInstance(gui, dialog, new Class[] { IdentityLinkGUIFacade.class }); stal = new LocalBKUWorker(proxy, dialog); dialog.setPreferredSize(PREFERRED_SIZE); dialog.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = dialog.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } dialog.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); return stal; }
From source file:at.gv.egiz.bku.local.stal.LocalGetCertificateSTALFactory.java
@Override public STAL createSTAL() { final LocalBKUWorker stal; //http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html // use undecorated JFrame instead of JWindow, // which creates an invisible owning frame and therefore cannot getFocusInWindow() JFrame dialog = new JFrame("Brgerkarte"); log.debug("AlwaysOnTop supported: {}.", dialog.isAlwaysOnTopSupported()); // [#439] make mocca dialog alwaysOnTop dialog.setAlwaysOnTop(true);/*from w w w . j a v a 2 s .c om*/ dialog.setIconImages(BKUIcons.icons); // dialog.setUndecorated(true); // dialog.getRootPane().setWindowDecorationStyle(JRootPane.NONE); if (locale != null) { dialog.setLocale(locale); } LocalHelpListener helpListener = null; if (helpURL != null) { helpListener = new LocalHelpListener(helpURL, locale); } else { log.warn("No HELP URL configured, help system disabled."); } GetCertificateGUIFacade gui = new GetCertificateGUI(dialog.getContentPane(), dialog.getLocale(), null, new ResourceFontLoader(), helpListener); BKUGUIFacade proxy = (BKUGUIFacade) GUIProxy.newInstance(gui, dialog, new Class[] { GetCertificateGUIFacade.class, }); stal = new LocalBKUWorker(proxy, dialog); dialog.setPreferredSize(PREFERRED_SIZE); dialog.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = dialog.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } dialog.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); return stal; }
From source file:at.gv.egiz.bku.local.stal.LocalGetHardwareInfoSTALFactory.java
@Override public STAL createSTAL() { final LocalBKUWorker stal; //http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html // use undecorated JFrame instead of JWindow, // which creates an invisible owning frame and therefore cannot getFocusInWindow() JFrame dialog = new JFrame("Brgerkarte"); log.debug("AlwaysOnTop supported: {}.", dialog.isAlwaysOnTopSupported()); // [#439] make mocca dialog alwaysOnTop dialog.setAlwaysOnTop(true);/*from w w w. j a v a2s . co m*/ dialog.setIconImages(BKUIcons.icons); // dialog.setUndecorated(true); // dialog.getRootPane().setWindowDecorationStyle(JRootPane.NONE); if (locale != null) { dialog.setLocale(locale); } LocalHelpListener helpListener = null; if (helpURL != null) { helpListener = new LocalHelpListener(helpURL, locale); } else { log.warn("No HELP URL configured, help system disabled."); } GetHardwareInfoGUIFacade gui = new GetHardwareInfoGUI(dialog.getContentPane(), dialog.getLocale(), null, new ResourceFontLoader(), helpListener); BKUGUIFacade proxy = (BKUGUIFacade) GUIProxy.newInstance(gui, dialog, new Class[] { GetHardwareInfoGUIFacade.class, }); stal = new LocalBKUWorker(proxy, dialog); dialog.setPreferredSize(PREFERRED_SIZE); dialog.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = dialog.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } dialog.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); return stal; }
From source file:at.gv.egiz.bku.local.stal.LocalSTALFactory.java
@Override public STAL createSTAL() { final LocalBKUWorker stal; //http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html // use undecorated JFrame instead of JWindow, // which creates an invisible owning frame and therefore cannot getFocusInWindow() JFrame dialog = new JFrame("Brgerkarte"); log.debug("AlwaysOnTop supported: {}.", dialog.isAlwaysOnTopSupported()); // [#439] make mocca dialog alwaysOnTop dialog.setAlwaysOnTop(true);/*from ww w .j av a 2s . c o m*/ dialog.setIconImages(BKUIcons.icons); // dialog.setUndecorated(true); // dialog.getRootPane().setWindowDecorationStyle(JRootPane.NONE); if (locale != null) { dialog.setLocale(locale); } LocalHelpListener helpListener = null; if (helpURL != null) { helpListener = new LocalHelpListener(helpURL, locale); } else { log.warn("No HELP URL configured, help system disabled."); } PINManagementGUIFacade gui = new PINManagementGUI(dialog.getContentPane(), dialog.getLocale(), null, new ResourceFontLoader(), helpListener); BKUGUIFacade proxy = (BKUGUIFacade) GUIProxy.newInstance(gui, dialog, new Class[] { PINManagementGUIFacade.class }); SMCCHelper.setUseSWCard(configurationFacade.getUseSWCard()); stal = new LocalBKUWorker(proxy, dialog); dialog.setPreferredSize(PREFERRED_SIZE); dialog.pack(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = dialog.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } dialog.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); return stal; }
From source file:levelBuilder.DialogMaker.java
/** * Provides instructions for using the program. *///w w w. j a va 2s . c o m private static void instructionsWindow() { JFrame frame = new JFrame("Instructions"); JPanel panel = new JPanel(new GridLayout(0, 1, 0, 0)); panel.add(new JLabel("DO NOT USE THE RIGHT CLICK MENU.", SwingConstants.LEFT)); panel.add(new JLabel("DO NOT REMOVE NODES OR VERTICES WITH THIS GUI. EDIT THE XML FILE INSTEAD.", SwingConstants.LEFT)); panel.add(new JLabel("", SwingConstants.LEFT)); panel.add( new JLabel("The 'Check' button runs various checks to make sure the graph does not contain errors.", SwingConstants.LEFT)); panel.add(new JLabel("", SwingConstants.LEFT)); panel.add(new JLabel("Transforming mode:", SwingConstants.LEFT)); panel.add(new JLabel("Shift + click + drag to rotate", SwingConstants.LEFT)); panel.add(new JLabel("Scroll to zoom", SwingConstants.LEFT)); panel.add(new JLabel("Command + click + drag to to weird stretchy thing", SwingConstants.LEFT)); panel.add(new JLabel("", SwingConstants.LEFT)); panel.add(new JLabel("Picking mode:", SwingConstants.LEFT)); panel.add(new JLabel("Click + drag to select multiple nodes", SwingConstants.LEFT)); panel.add(new JLabel("Click + drag moves node or group of nodes", SwingConstants.LEFT)); panel.add(new JLabel("Only in picking mode can you see different strategies", SwingConstants.LEFT)); panel.add(new JLabel("New strategies will also only appear after refocusing on the main window", SwingConstants.LEFT)); panel.add(new JLabel("", SwingConstants.LEFT)); panel.add(new JLabel("Editing mode:", SwingConstants.LEFT)); panel.add(new JLabel("Click + drag from one node to another creates an edge", SwingConstants.LEFT)); panel.add(new JLabel("After drawing a new edge you have to click the 'new edge' button", SwingConstants.LEFT)); panel.add(new JLabel("Click to add a new node", SwingConstants.LEFT)); panel.setOpaque(true); frame.setContentPane(panel); frame.pack(); frame.setLocation(windowWidth, verticalWindowPlacement); frame.setVisible(true); verticalWindowPlacement += frame.getBounds().height; }