I have a java app to open the file in separate windows, but the menu bar and frame title doesn’t show on the second windows. As you can see when the file is open on the first windows that the title and menu bar appear. When I open the file by clicking the menu on the first windows. The file opens on the second windows but no frame title and menu bar. Would someone tell me how I can solve this problem? Thank in advance.
The image is the first file opening on the windows
The image is the second file opening on the separate window
There is my code:
package PDFAnnotationPackage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.util.*;
import javax.swing.JButton;
import java.awt.Color;
import javax.swing.JTextField;
import PDFAnnotationPackage.WindowMenu.ChildMenuItem;
import com.qoppa.pdf.IEmbeddedFile;
import com.qoppa.pdf.annotations.IAnnotSelectionListener;
import java.io.File;
public class Question extends JFrame implements ActionListener{
public final static String PDFEXTENSION= "pdf";
private ArrayList<File> fileList=new ArrayList<File>();
private PDFInternalFrame internalFrame=null;
private ArrayList<PDFInternalFrame> lstInternalFrame=new ArrayList<PDFInternalFrame>();
public static void main(String[] args) {
// TODO Auto-generated method stub
if (args.length>0){
Utility.DisplayTestMsg(args[0]);
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run()
{
new Question();
}
});
}
public Question(File newFile) {
String extension=getExtension(newFile);
if ( PDFEXTENSION.equalsIgnoreCase(extension)){
AddJPDFNote(newFile);
} else{
Utility.DisplayWarningMsg("Only PDF File");
}
// TODO Auto-generated constructor stub
}
public Question(){
super("Question");
//it is equal to this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
}
});
this.setMinimumSize(new Dimension(400, 500));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setLayout(new BorderLayout());
// Name the JMenu & Add Items
JMenu menu = new JMenu("File");
menu.add(makeMenuItem("Open"));
menu.add(makeMenuItem("Save"));
menu.add(makeMenuItem("Save As"));
menu.add(makeMenuItem("Close"));
menu.add(makeMenuItem("Print"));
menu.add(makeMenuItem("Quit"));
// Add JMenu bar
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
setJMenuBar(menuBar);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// Menu item actions
String command = e.getActionCommand().trim();
if (command.length()>1){
menuAction(command);
}
}
private String getExtension(File file){
return file.getName().substring(file.getName().lastIndexOf(".") + 1, file.getName().length());
}
private JMenuItem makeMenuItem(String name) {
JMenuItem m = new JMenuItem(name);
m.addActionListener(this);
return m;
}
private void menuAction(String command){
boolean blnGo=false;
if (command.equals("Quit")) {
} else if (command.equals("Open")) {
// Open menu item action
OpenPDFFile();
} else if (command.equalsIgnoreCase("Save")) {
} else if (command.equalsIgnoreCase("Save As")) {
}else if (command.equalsIgnoreCase("Close")){
}
else if (command.equalsIgnoreCase("Print")) {
}
}
private void AddJPDFNote(File file){
try{
internalFrame = new PDFInternalFrame(file, this.getWidth(), this.getHeight());
fileList.add(file);
lstInternalFrame.add(internalFrame);
internalFrame.setBounds(0, 0, 600, 100);
this.add(internalFrame,BorderLayout.CENTER);
internalFrame.setVisible(true);
try {
internalFrame.setSelected(true);
}
catch (java.beans.PropertyVetoException e) {
Utility.DisplayExcecptionStrackTrack(e,"MainForm - AddJPDFNote line 401");
}
catch(Exception err){
Utility.DisplayExcecptionStrackTrack(err,"MainForm - AddJPDFNote line 406");
}
}
catch(Exception err){
Utility.DisplayExcecptionStrackTrack(err,"MainForm - AddJPDFNote");
}
}
private void OpenPDFFile(){
JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter pdfType=new FileNameExtensionFilter("PDF File (."+ PDFEXTENSION + ")", PDFEXTENSION);
fileChooser.addChoosableFileFilter(pdfType);
fileChooser.setFileFilter(pdfType);
//clear "All files" from dropdown filter box
fileChooser.setAcceptAllFileFilterUsed(false);
int returnVal = fileChooser.showOpenDialog(Question.this);
if (returnVal == fileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
String extension =getExtension(file);
if ( PDFEXTENSION.equalsIgnoreCase(extension)){
if (fileList.size()==0){
AddJPDFNote(file);
}
else{
Question a=new Question(file);
a.pack();
a.setVisible(true);
}
} else{
Utility.DisplayWarningMsg("Only PDF File");
}
} else if (returnVal == JFileChooser.CANCEL_OPTION ) {
// Do something else
}
}
}