public void init(String contents) { textarea = new JTextArea(contents); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER)); JButton closebutton = new JButton("Close"); closebutton.addActionListener(this); buttonPanel.add(closebutton); this.add(new JScrollPane(textarea)); this.add(buttonPanel, BorderLayout.PAGE_END); this.setVisible(true); }
/** * Create a new, empty, not-visible TaxRef window. Really just activates the setup frame and setup * memory monitor components, then starts things off. */ public MainFrame() { setupMemoryMonitor(); // Set up the main frame. mainFrame = new JFrame(basicTitle); mainFrame.setJMenuBar(setupMenuBar()); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Set up the JTable. table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.setSelectionBackground(COLOR_SELECTION_BACKGROUND); table.setShowGrid(true); // Add a blank table model so that the component renders properly on // startup. table.setModel(blankDataModel); // Add a list selection listener so we can tell the matchInfoPanel // that a new name was selected. table .getSelectionModel() .addListSelectionListener( new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (currentCSV == null) return; int row = table.getSelectedRow(); int column = table.getSelectedColumn(); columnInfoPanel.columnChanged(column); Object o = table.getModel().getValueAt(row, column); if (Name.class.isAssignableFrom(o.getClass())) { matchInfoPanel.nameSelected(currentCSV.getRowIndex(), (Name) o, row, column); } else { matchInfoPanel.nameSelected(currentCSV.getRowIndex(), null, -1, -1); } } }); // Set up the left panel (table + matchInfoPanel) JPanel leftPanel = new JPanel(); matchInfoPanel = new MatchInformationPanel(this); leftPanel.setLayout(new BorderLayout()); leftPanel.add(matchInfoPanel, BorderLayout.SOUTH); leftPanel.add(new JScrollPane(table)); // Set up the right panel (columnInfoPanel) JPanel rightPanel = new JPanel(); columnInfoPanel = new ColumnInformationPanel(this); progressBar.setStringPainted(true); rightPanel.setLayout(new BorderLayout()); rightPanel.add(columnInfoPanel); rightPanel.add(progressBar, BorderLayout.SOUTH); // Set up a JSplitPane to split the panels up. JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, leftPanel, rightPanel); split.setResizeWeight(1); mainFrame.add(split); mainFrame.pack(); // Set up a drop target so we can pick up files mainFrame.setDropTarget( new DropTarget( mainFrame, new DropTargetAdapter() { @Override public void dragEnter(DropTargetDragEvent dtde) { // Accept any drags. dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE); } @Override public void dragOver(DropTargetDragEvent dtde) {} @Override public void dropActionChanged(DropTargetDragEvent dtde) {} @Override public void dragExit(DropTargetEvent dte) {} @Override public void drop(DropTargetDropEvent dtde) { // Accept a drop as long as its File List. if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); Transferable t = dtde.getTransferable(); try { java.util.List<File> files = (java.util.List<File>) t.getTransferData(DataFlavor.javaFileListFlavor); // If we're given multiple files, pick up only the last file and load that. File f = files.get(files.size() - 1); loadFile(f, DarwinCSV.FILE_CSV_DELIMITED); } catch (UnsupportedFlavorException ex) { dtde.dropComplete(false); } catch (IOException ex) { dtde.dropComplete(false); } } } })); }
@SuppressWarnings("serial") public JTableRenderer(final Object cell, final GraphComponent graphContainer) { this.cell = cell; this.graphContainer = graphContainer; this.graph = graphContainer.getGraph(); setLayout(new BorderLayout()); setBorder( BorderFactory.createCompoundBorder( ShadowBorder.getSharedInstance(), BorderFactory.createBevelBorder(BevelBorder.RAISED))); JPanel title = new JPanel(); title.setBackground(new Color(149, 173, 239)); title.setOpaque(true); title.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 1)); title.setLayout(new BorderLayout()); JLabel icon = new JLabel(new ImageIcon(JTableRenderer.class.getResource(IMAGE_PATH + "preferences.gif"))); icon.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 1)); title.add(icon, BorderLayout.WEST); JLabel label = new JLabel(String.valueOf(graph.getLabel(cell))); label.setForeground(Color.WHITE); label.setFont(title.getFont().deriveFont(Font.BOLD, 11)); label.setBorder(BorderFactory.createEmptyBorder(0, 1, 0, 2)); title.add(label, BorderLayout.CENTER); JPanel toolBar2 = new JPanel(); toolBar2.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 2)); toolBar2.setOpaque(false); JButton button = new JButton( new AbstractAction( "", new ImageIcon(JTableRenderer.class.getResource(IMAGE_PATH + "minimize.gif"))) { public void actionPerformed(ActionEvent e) { graph.foldCells(graph.isCellCollapsed(cell), false, new Object[] {cell}); ((JButton) e.getSource()) .setIcon( new ImageIcon( JTableRenderer.class.getResource( IMAGE_PATH + ((graph.isCellCollapsed(cell)) ? "maximize.gif" : "minimize.gif")))); } }); button.setPreferredSize(new Dimension(16, 16)); button.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); button.setToolTipText("Collapse/Expand"); button.setOpaque(false); toolBar2.add(button); title.add(toolBar2, BorderLayout.EAST); add(title, BorderLayout.NORTH); // CellStyle style = // graph.getStylesheet().getCellStyle(graph.getModel(), // cell); // if (style.getStyleClass() == null) { table = new MyTable(); JScrollPane scrollPane = new JScrollPane(table); scrollPane.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); if (graph.getModel().getChildCount(cell) == 0) { scrollPane.getViewport().setBackground(Color.WHITE); setOpaque(true); add(scrollPane, BorderLayout.CENTER); } scrollPane .getVerticalScrollBar() .addAdjustmentListener( new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent e) { graphContainer.refresh(); } }); label = new JLabel(new ImageIcon(JTableRenderer.class.getResource(IMAGE_PATH + "resize.gif"))); label.setCursor(new Cursor(Cursor.NW_RESIZE_CURSOR)); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.add(label, BorderLayout.EAST); add(panel, BorderLayout.SOUTH); ResizeHandler resizeHandler = new ResizeHandler(); label.addMouseListener(resizeHandler); label.addMouseMotionListener(resizeHandler); setMinimumSize(new Dimension(20, 30)); }