Assignment( java classwork )
Assignment( java classwork )
Menu Items, Check box and Radio Buttons in Menu Items, Pop-up
6 b, c
SOLUTION:
package TextEditorApp;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public TextEditorApp() {
setTitle("Text Editor");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// Text Area
textArea.setWrapStyleWord(true);
add(scrollPane, BorderLayout.CENTER);
// Menu Bar
// File Menu
fileMenu.setMnemonic('F');
newItem.setAccelerator(KeyStroke.getKeyStroke('N',
Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()));
fileMenu.add(newItem);
openItem.setAccelerator(KeyStroke.getKeyStroke('O',
Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()));
fileMenu.add(openItem);
saveItem.setAccelerator(KeyStroke.getKeyStroke('S',
Toolkit.getDefaultToolkit().getMenuShortcutKeyMaskEx()));
fileMenu.add(saveItem);
fileMenu.addSeparator();
JMenuItem exitItem = new JMenuItem("Exit");
fileMenu.add(exitItem);
menuBar.add(fileMenu);
// Edit Menu
editMenu.setMnemonic('E');
editMenu.add(cutItem);
editMenu.add(copyItem);
editMenu.add(pasteItem);
menuBar.add(editMenu);
viewMenu.add(showStatusBar);
JMenu themeMenu = new JMenu("Theme");
themeGroup.add(lightTheme);
themeGroup.add(darkTheme);
themeMenu.add(lightTheme);
themeMenu.add(darkTheme);
viewMenu.add(themeMenu);
menuBar.add(viewMenu);
setJMenuBar(menuBar);
// ToolBar
toolBar.add(newButton);
toolBar.add(openButton);
toolBar.add(saveButton);
add(toolBar, BorderLayout.NORTH);
// Popup Menu
popupMenu.add(popupCut);
popupMenu.add(popupCopy);
popupMenu.add(popupPaste);
textArea.setComponentPopupMenu(popupMenu);
// Status Bar
statusBar.setBorder(BorderFactory.createEtchedBorder());
add(statusBar, BorderLayout.SOUTH);
SwingUtilities.invokeLater(() -> {
app.setVisible(true);
});
}.
}
OUTPUT:
QUESTION: 2
Choosers .
SOLUTION:
package drawingApp;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
public drawingApp() {
setTitle("Drawing Application");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// Canvas panel
canvas.setBackground(Color.WHITE);
add(canvas, BorderLayout.CENTER);
// Menu Bar
// File Menu
fileMenu.setMnemonic('F');
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.add(saveFile);
JMenuItem exitApp = new JMenuItem("Exit");
fileMenu.add(exitApp);
menuBar.add(fileMenu);
// Edit Menu
editMenu.add(changeColor);
editMenu.add(showCustomDialog);
menuBar.add(editMenu);
setJMenuBar(menuBar);
// Status Bar
statusBar.setBorder(BorderFactory.createEtchedBorder());
add(statusBar, BorderLayout.SOUTH);
canvas.addMouseListener(new MouseAdapter() {
}
});
/**
*/
this,
"Are you sure you want to start a new canvas? Unsaved changes will be lost.",
"New Canvas",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE
);
if (response == JOptionPane.YES_OPTION) {
canvas.setBackground(Color.WHITE);
/**
*/
if (response == JFileChooser.APPROVE_OPTION) {
/**
*/
if (response == JFileChooser.APPROVE_OPTION) {
/**
*/
if (selectedColor != null) {
canvas.setBackground(selectedColor);
/**
* Opens a custom dialog for displaying app information.
*/
dialog.setSize(300, 200);
dialog.setLayout(new BorderLayout());
dialog.setLocationRelativeTo(this);
dialog.add(label, BorderLayout.CENTER);
dialog.add(closeButton, BorderLayout.SOUTH);
dialog.setVisible(true);
/**
*/
this,
"Exit Application",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE
);
if (response == JOptionPane.YES_OPTION) {
System.exit(0);
SwingUtilities.invokeLater(() -> {
app.setVisible(true);
});
OUTPUT:
QUESTION: 3
SOLUTION:
package DocumentManagementSystem;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
public DocumentManagementSystem() {
setSize(1000, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
add(mainSplitPane);
setJMenuBar(createMenuBar());
// List View
// Tree View
// Table View
mainTabbedPane.addTab("Table View", createTableView());
leftPanel.add(mainTabbedPane, BorderLayout.CENTER);
desktopPane.setBackground(Color.LIGHT_GRAY);
addInternalFrames();
rightPanel.add(desktopPane, BorderLayout.CENTER);
uploadProgressBar.setStringPainted(true);
rightPanel.add(uploadProgressBar, BorderLayout.SOUTH);
mainSplitPane.setDividerLocation(300);
return mainSplitPane;
documents.add("Project Proposal.docx");
documents.add("Marketing Strategy.pptx");
documents.add("Employee Handbook.pdf");
documentList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
// Department nodes
root.add(finance);
root.add(marketing);
};
desktopPane.add(frame1);
desktopPane.add(frame2);
private JInternalFrame createInternalFrame(String title, int x, int y, int width, int height) {
internalFrame.add(new JScrollPane(textArea));
internalFrame.setVisible(true);
return internalFrame;
}
// File Menu
fileMenu.add(uploadItem);
menuBar.add(fileMenu);
return menuBar;
@Override
Thread.sleep(500);
publish(i);
return null;
@Override
uploadProgressBar.setValue(latestProgress);
uploadProgressBar.setString("Uploading: " + latestProgress + "%");
@Override
uploadProgressBar.setString("Upload Complete!");
};
worker.execute();
try {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
} catch (Exception e) {
// If Nimbus is not available, we'll use the default look and feel
SwingUtilities.invokeLater(() -> {
dms.setVisible(true);
});
}
}
OUTPUT: