public ConsolePanel() { super(new BorderLayout()); text.setFont(StyleContext.getDefaultStyleContext().getFont("SansSerif", Font.PLAIN, 10)); JScrollPane scroller = new JScrollPane(text); scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); add(BorderLayout.CENTER, scroller); }
/** * Create plot info panel * * @return panel */ private JPanel createMapPanel() { JPanel panel = new JPanel(new BorderLayout(), true); // create an raised, etched, titled border Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); TitledBorder titledBorder = BorderFactory.createTitledBorder(etchedBorder, "Map"); titledBorder.setTitleJustification(TitledBorder.LEFT); panel.setBorder(titledBorder); // load image java.net.URL imgURL = getClass().getResource("/resources/map.png"); map = new ScrollablePicture(new ImageIcon(imgURL), 10); // map = new ScrollablePicture(new ImageIcon("resources/map.png"), 10); mapScrollPane = new JScrollPane(map); mapScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); mapScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); map.addMouseListener( new MouseListener() { /** * Get the coordinates of a mouse click event * * @param e MouseEvent */ @Override public void mouseClicked(MouseEvent e) { if (cemeteryPlotterFrame.cemeteryPlotterPlot.isEditable()) cemeteryPlotterFrame.cemeteryPlotterPlot.setMapLocationField(e.getPoint()); } @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) { if (cemeteryPlotterFrame.cemeteryPlotterPlot.isEditable()) mapScrollPane.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } @Override public void mouseExited(MouseEvent e) {} }); // add map scroll pane to main panel panel.add(mapScrollPane, BorderLayout.CENTER); return panel; }
private JPanel getContentPanel() { JPanel contentPanel1 = new JPanel(); summaryPanel = new JPanel(); resultPanel = new JPanel(); jPanel1 = new javax.swing.JPanel(); createFilesButton = new JButton(); showFilesButton = new JButton(); contentPanel1.setLayout(new java.awt.BorderLayout()); jPanel1.setLayout(new MigLayout("wrap 1")); /* Summary */ summaryPanel.setLayout(new MigLayout("wrap 1,w 400")); summaryPanel.setBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "Summary", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Courier", Font.BOLD, 14))); summaryField = new JTextArea("", 10, 30); summaryField.setLineWrap(true); summaryField.setWrapStyleWord(true); summaryField.setEditable(false); JScrollPane summaryScrollPane = new JScrollPane(summaryField); summaryScrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS & JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); summaryPanel.add(summaryScrollPane); createFilesButton.setText("Create Data Loader CLI Files"); createFilesButton.setActionCommand(CREATE_FILES_ACTION_COMMAND); summaryPanel.add(createFilesButton, ""); jPanel1.add(summaryPanel); /* Results */ resultPanel.setLayout(new MigLayout("wrap 1,w 400")); resultPanel.setBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), "Results", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Courier", Font.BOLD, 14))); statusField = new JTextArea("", 6, 30); statusField.setLineWrap(true); statusField.setWrapStyleWord(true); statusField.setEditable(false); JScrollPane messageScrollPane = new JScrollPane(statusField); messageScrollPane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS & JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); resultPanel.add(messageScrollPane); /* Not supported by Java 1.5 showFilesButton.setText("Show Files"); showFilesButton.setActionCommand(SHOW_FILES_ACTION_COMMAND); showFilesButton.setEnabled(false); resultPanel.add(showFilesButton,""); */ jPanel1.add(resultPanel); /* End */ contentPanel1.add(jPanel1, java.awt.BorderLayout.CENTER); return contentPanel1; }
// CONSTRUCTOR public FACFrame() { // SET PROPERTIES OF THE MAIN FRAME setTitle("Fully Associative Cache"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setIconImage(Toolkit.getDefaultToolkit().createImage(FACFrame.class.getResource("cam.gif"))); // CREATE COMPONENTS AND SET THEIR PROPERTIES // NAVIGATION BUTTONS restart = new JButton("Restart"); next = new JButton("Next"); back = new JButton("Back"); quit = new JButton("Quit"); // CACHE HITS AND MISSES INFO. lCacheHits = new JLabel("Cache Hits"); lCacheMisses = new JLabel("Cache Misses"); tCacheHits = new JTextField(5); tCacheMisses = new JTextField(5); tCacheHits.setEditable(false); tCacheHits.setFont(new Font("Monospaced", Font.BOLD, 14)); tCacheHits.setText(" 0"); tCacheMisses.setEditable(false); tCacheMisses.setFont(new Font("Monospaced", Font.BOLD, 14)); tCacheMisses.setText(" 0"); // PROGRESS UPDATE AREA tProgress = new JTextArea(3, 45); tProgress.setEditable(false); tProgress.setLineWrap(true); tProgress.setWrapStyleWord(true); tProgress.setCaretPosition(0); tProgress.setFont(new Font("Serif", Font.BOLD + Font.ITALIC, 16)); tProgress.setText( "Welcome to Fully Associative Cache!\nThe system specs are as follows -" + "\n 16 Blocks in Cache\n 32 Blocks in Main Memory\n 8 Words per Block" + "\n The replacement algorithm shown is the Least-Recently-Used algorithm" + "\n as it is the most commonly used one." + "\nPlease generate the Address Reference String." + "\nThen click on \"Next\" to continue."); progressScroll = new JScrollPane(); progressScroll.getViewport().add(tProgress); progressScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); lProgress = new JLabel("PROGRESS UPDATE"); // ADDRESS REFERENCE STRING addRefStrList = new JList(); addRefStrList.setEnabled(false); addRefStrScroll = new JScrollPane(); addRefStrScroll.getViewport().setView(addRefStrList); addRefStrScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); addRefStrScroll.setPreferredSize(new Dimension(140, 300)); // BUTTONS USED TO ADDRESS GENERATION autoGen = new JButton("Auto Generate Add. Ref. Str."); selfGen = new JButton("Self Generate Add. Ref. Str."); // BITS IN MAIN MEMORY ADDRESS lBits = new JLabel(" TAG WORD"); tTag = new JTextField(9); tTag.setEditable(false); tWord = new JTextField(7); tWord.setEditable(false); // SET THE FONT STYLES FOR THE BITS IN MAIN MEMORY ADDRESS tTag.setFont(new Font("Monospaced", Font.BOLD, 14)); tWord.setFont(new Font("Monospaced", Font.BOLD, 14)); // REGISTER LISTENERS restart.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { reStart(); } }); next.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { nextClicked = true; step(); } }); back.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { nextClicked = false; step(); } }); quit.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { int confirmQuit = JOptionPane.showConfirmDialog( null, "Really Quit?", "Quit Confirmation", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); switch (confirmQuit) { case JOptionPane.YES_OPTION: removeInstance(); case JOptionPane.NO_OPTION: break; } } }); autoGen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { autoGenerateString(); } }); selfGen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { selfGenerateString(); } }); // DISABLE NAVIGATION BUTTONS FOR NOW next.setEnabled(false); back.setEnabled(false); // CREATE PANELS cachePanel = new FACachePanel(); memoryPanel = new MemoryPanel(); bottomPanel = new JPanel(); cache = new JPanel(); cacheHitsMisses = new JPanel(); pAutoSelfGen = new JPanel(); pAddRefStr = new JPanel(); pEastPanel = new JPanel(); pBitsInMM = new JPanel(); // ADD COMPONENTS TO THE PANELS // PANEL WITH PROGRESS UPDATE TEXT AREA AND NAVIGATION BUTTONS bottomPanel.add(lProgress); bottomPanel.add(progressScroll); bottomPanel.add(restart); bottomPanel.add(next); bottomPanel.add(back); bottomPanel.add(quit); // PANEL WITH CACHE BLOCKS, HITS AND MISSES INFO. cacheHitsMisses.add(lCacheHits); cacheHitsMisses.add(tCacheHits); cacheHitsMisses.add(lCacheMisses); cacheHitsMisses.add(tCacheMisses); cacheHMBorder = BorderFactory.createEtchedBorder(); cacheHitsMisses.setBorder(BorderFactory.createTitledBorder(cacheHMBorder, "")); cache.setLayout(new BorderLayout()); cache.add(cachePanel, "Center"); cache.add(cacheHitsMisses, "South"); // PANEL WITH ADDRESS REFERENCE STRING AND STRING GENERATION BUTTONS pAutoSelfGen.setLayout(new GridLayout(2, 1)); pAutoSelfGen.add(autoGen); pAutoSelfGen.add(selfGen); pAddRefStr.setLayout(new BorderLayout()); pAddRefStr.setPreferredSize(new Dimension(160, 400)); pAddRefStr.add(addRefStrScroll, "Center"); pAddRefStr.add(pAutoSelfGen, "South"); addRefStrBorder = BorderFactory.createEtchedBorder(); pAddRefStr.setBorder( BorderFactory.createTitledBorder(addRefStrBorder, " Address Reference String ")); // PANEL WITH THE MAIN MEMORY ADDRESS BITS INFO. pBitsInMM.setLayout(new BorderLayout()); bitsInMMBorder = BorderFactory.createEtchedBorder(); pBitsInMM.setBorder(BorderFactory.createTitledBorder(bitsInMMBorder, " Main Memory Address ")); pBitsInMM.add(tTag, "Center"); pBitsInMM.add(tWord, "East"); pBitsInMM.add(lBits, "South"); // PANEL CONTAINING THE ADDRESS REF. STRING PANEL AND BITS IN MM PANEL pEastPanel.setLayout(new BorderLayout()); pEastPanel.setPreferredSize(new Dimension(310, 650)); pEastPanel.add(pAddRefStr, "Center"); pEastPanel.add(pBitsInMM, "South"); // ADD COMPONENTS TO THE FRAME CONTAINER Container c = getContentPane(); c.setLayout(new BorderLayout()); c.add(cache, "West"); c.add(memoryPanel, "Center"); c.add(pEastPanel, "East"); c.add(bottomPanel, "South"); // INITIALIZE ARRAYS THAT HOLDS STATUS OF EMPTY AND LRU CACHE BLOCKS for (int i = 0; i < 16; i++) { statusCacheEmpty[i] = true; statusCacheLRU[i] = 0; } /* * CALL THE FUNCTION TO GENERATE THE ARRAY addresses, WHICH CONTAINS ALL THE POSSIBLE MEMORY ADDRESSES * THIS ARRAY WILL BE USEFUL IN THE AUTO GENERATION OF ADDRESSES AS WELL AS FOR VALIDATION OF * ADDRESS STRINGS INPUT BY THE USER IF HE/SHE CHOOSES SELF GENERATION. */ createAddresses(); pack(); } // END CONSTRUCTOR
private void jbInit() throws Exception { this.getContentPane().setLayout(gridBagLayout2); bottomPanel.setLayout(gridBagLayout1); messagePanel.setBorder(BorderFactory.createLoweredBevelBorder()); replaceButton.setToolTipText("Save the new trace replacing the old trace."); replaceButton.setText("Replace old trace"); replaceButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { replaceOldTrace(); } }); buttonPanel.setBorder(BorderFactory.createLoweredBevelBorder()); discardButton.setToolTipText("Discard the new trace"); discardButton.setText("Discard new trace"); discardButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { DoneReplayDialog.this.setVisible(false); } }); saveButton.setToolTipText("Save the new trace in a file."); saveButton.setText("Save as new file"); saveButton.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { saveNewToFile(); } }); this.setModal(true); this.setTitle("Replay Complete"); jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jScrollPane1.setMinimumSize(new Dimension(200, 200)); jScrollPane1.setPreferredSize(new Dimension(200, 200)); jTextPane.setMinimumSize(new Dimension(25, 80)); jTextPane.setPreferredSize(new Dimension(40, 80)); tracePanel.setLayout(borderLayout1); commentPanel.setLayout(borderLayout3); jPanel6.setLayout(borderLayout2); jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jScrollPane2.setMinimumSize(new Dimension(200, 100)); jScrollPane2.setPreferredSize(new Dimension(200, 100)); jLabel1.setText("Comment"); jLabel2.setText("Traces (Old is Yellow, New is Pink)"); tracePanel.setBorder(BorderFactory.createEtchedBorder()); bottomPanel.setBorder(BorderFactory.createEtchedBorder()); commentPanel.setBorder(BorderFactory.createEtchedBorder()); this.getContentPane() .add( bottomPanel, new GridBagConstraints( 0, 3, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 5, 5, 5), 0, 0)); buttonPanel.add(saveButton, null); buttonPanel.add(replaceButton, null); buttonPanel.add(discardButton, null); bottomPanel.add( messagePanel, new GridBagConstraints( 0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); messagePanel.add(messageLabel, null); this.getContentPane() .add( tracePanel, new GridBagConstraints( 0, 2, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); tracePanel.add(jScrollPane1, BorderLayout.CENTER); tracePanel.add(jLabel2, BorderLayout.NORTH); this.getContentPane() .add( commentPanel, new GridBagConstraints( 0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 5, 5, 5), 0, 0)); commentPanel.add(jPanel6, BorderLayout.CENTER); jPanel6.add(jScrollPane2, BorderLayout.CENTER); commentPanel.add(jLabel1, BorderLayout.NORTH); jScrollPane2.getViewport().add(commentPane, null); jScrollPane1.getViewport().add(jTextPane, null); bottomPanel.add( buttonPanel, new GridBagConstraints( 0, 1, 2, 2, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); }