/** * Returns the inside size as a Dimension. * * @return Inside size */ public java.awt.Dimension getInsideSize() { java.awt.Dimension d = getSize(); java.awt.Insets insets = getInsets(); d.width -= insets.left + insets.right; d.height -= insets.top + insets.bottom; return d; }
public MainFrame() { try { mainPanel.setLayout(new BorderLayout()); mainPanel.setBorder(BorderFactory.createEmptyBorder(9, 9, 9, 9)); mainPanel.add(outputContainer, java.awt.BorderLayout.CENTER); outputArea.setLineWrap(true); outputContainer.add(new JScrollPane(outputArea), java.awt.BorderLayout.CENTER); outputContainer.setBorder(new javax.swing.border.TitledBorder("Results")); this.getContentPane().add(mainPanel, java.awt.BorderLayout.CENTER); java.util.ArrayList<JButton> btns = new java.util.ArrayList<JButton>(); { JPanel westPanel = new JPanel(new GridLayout(0, 1, 0, 10)); westPanel.setBorder(BorderFactory.createEmptyBorder(9, 9, 9, 9)); JPanel opsPanel = new JPanel(new GridLayout(6, 1)); opsPanel.setBorder(new javax.swing.border.TitledBorder("Operations")); for (Action action : operations) { JPanel p = new JPanel(new BorderLayout()); JButton jb = new JButton(action); btns.add(jb); p.add(jb, BorderLayout.NORTH); opsPanel.add(p); } westPanel.add(opsPanel); controlContainer.add(westPanel, BorderLayout.CENTER); } this.getContentPane().add(controlContainer, BorderLayout.WEST); this.pack(); Dimension dim = btns.get(0).getSize(); for (JButton btn : btns) { btn.setPreferredSize(dim); } java.awt.Dimension prefSize = this.getPreferredSize(); prefSize.setSize(prefSize.getWidth(), 1.1 * prefSize.getHeight()); this.setSize(prefSize); java.awt.Dimension parentSize; java.awt.Point parentLocation = new java.awt.Point(0, 0); parentSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int x = parentLocation.x + (parentSize.width - prefSize.width) / 2; int y = parentLocation.y + (parentSize.height - prefSize.height) / 2; this.setLocation(x, y); this.setResizable(true); } catch (Exception e) { e.printStackTrace(); } }
/** Center a component in the middle of the screen. */ public static void centerComponent(java.awt.Component component) { java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); java.awt.Dimension size = component.getSize(); screenSize.height = screenSize.height / 2; screenSize.width = screenSize.width / 2; size.height = size.height / 2; size.width = size.width / 2; component.setLocation(screenSize.width - size.width, screenSize.height - size.height); }
/** @param arg */ public static void main(String arg[]) { TestApp af = new TestApp(); SourceImage sImg = null; int imagesPerRow = 0; int imagesPerCol = 0; int imgMin = 65536; int imgMax = 0; boolean signed = false; boolean inverted = false; boolean hasPad = false; int padValue = 0; if (arg.length == 6) { // do it with raw file int w = 0; int h = 0; int d = 0; try { w = Integer.valueOf(arg[1]).intValue(); h = Integer.valueOf(arg[2]).intValue(); d = Integer.valueOf(arg[3]).intValue(); imagesPerRow = Integer.valueOf(arg[4]).intValue(); imagesPerCol = Integer.valueOf(arg[5]).intValue(); } catch (Exception e) { System.err.println(e); System.exit(0); } try { FileInputStream i = new FileInputStream(arg[0]); sImg = new SourceImage(i, w, h, d); } catch (Exception e) { System.err.println(e); System.exit(0); } } else { // do it with DICOM file if (arg.length > 2) { try { imagesPerRow = Integer.valueOf(arg[1]).intValue(); imagesPerCol = Integer.valueOf(arg[2]).intValue(); } catch (Exception e) { System.err.println(e); e.printStackTrace(System.err); System.exit(0); } } else { imagesPerRow = 1; imagesPerCol = 1; } try { DicomInputStream i = new DicomInputStream(new FileInputStream(arg[0])); sImg = new SourceImage(i); } catch (Exception e) { System.err.println(e); e.printStackTrace(System.err); System.exit(0); } } try { // com.apple.cocoa.application.NSMenu.setMenuBarVisible(false); // Won't compile on // other platforms // Class classToUse = // ClassLoader.getSystemClassLoader().loadClass("com.apple.cocoa.application.NSMenu"); // // Needs "/System/Library/Java" in classpath Class classToUse = new java.net.URLClassLoader(new java.net.URL[] {new File("/System/Library/Java").toURL()}) .loadClass("com.apple.cocoa.application.NSMenu"); Class[] parameterTypes = {Boolean.TYPE}; java.lang.reflect.Method methodToUse = classToUse.getDeclaredMethod("setMenuBarVisible", parameterTypes); Object[] args = {Boolean.FALSE}; methodToUse.invoke(null /*since static*/, args); } catch (Exception e) { // ClassNotFoundException,NoSuchMethodException,IllegalAccessException e.printStackTrace(System.err); } java.awt.Dimension d = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); int frameWidth = (int) d.getWidth(); int frameHeight = (int) d.getHeight(); System.err.println("frameWidth=" + frameWidth); System.err.println("frameHeight=" + frameHeight); af.setUndecorated(true); af.setLocation(0, 0); af.setSize(frameWidth, frameHeight); JPanel multiPanel = new JPanel(); multiPanel.setLayout(new GridLayout(imagesPerCol, imagesPerRow)); multiPanel.setBackground(Color.black); SingleImagePanel imagePanel[] = new SingleImagePanel[imagesPerRow * imagesPerCol]; int singleWidth = frameWidth / imagesPerRow; int singleHeight = frameHeight / imagesPerCol; System.err.println("singleWidth=" + singleWidth); System.err.println("singleHeight=" + singleHeight); for (int x = 0; x < imagesPerCol; ++x) { for (int y = 0; y < imagesPerRow; ++y) { SingleImagePanel ip = new SingleImagePanel(sImg); // ip.setPreferredSize(new Dimension(img.getWidth(),img.getHeight())); // ip.setPreferredSize(new Dimension(sImg.getWidth(),sImg.getHeight())); ip.setPreferredSize(new Dimension(singleWidth, singleHeight)); multiPanel.add(ip); imagePanel[x * imagesPerRow + y] = ip; } } // multiPanel.setSize(img.getWidth()*imagesPerRow,img.getHeight()*imagesPerRow); // JScrollPane scrollPane = new JScrollPane(multiPanel); Container content = af.getContentPane(); content.setLayout(new GridLayout(1, 1)); // content.add(scrollPane); content.add(multiPanel); af.pack(); af.setVisible(true); }