나는 작은 메모장 데모를 만들었고 메인 프레임의 같은 프레임에서 파일을 열려고했지만 파일을 여는 동안 다른 프레임에서 열리 며 프로그램을 실행할 때 열리는 첫 번째 프레임에서 열어 보겠습니다. .처음 실행될 때 같은 프레임에서 텍스트 파일을 여는 방법은 무엇입니까?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
public class DemoMenu extends Frame
{
Frame frm=new Frame();
MenuBar bar=new MenuBar();
//frm.setMenuBar(bar);
Menu mf=new Menu("File");
Menu me=new Menu("Edit");
Menu mfo=new Menu("Format");
Menu mv=new Menu("View");
Menu mh=new Menu("Help");
MenuItem mf1=new MenuItem("New"+" "+"Ctrl+N");
MenuItem mf2=new MenuItem("Open..."+" "+"Ctrl+O");
MenuItem mf3=new MenuItem("Save"+" "+"Ctrl+S");
MenuItem mf4=new MenuItem("Save As...");
MenuItem mf5=new MenuItem("Page Setup...");
MenuItem mf6=new MenuItem("Print..."+" "+"Ctrl+P");
MenuItem mf7=new MenuItem("Exit");
MenuItem me1=new MenuItem("Undo"+" "+"Ctrl+Z");
MenuItem me2=new MenuItem("Cut"+" "+"Ctrl+X");
MenuItem me3=new MenuItem("Copy"+" "+"Ctrl+C");
MenuItem me4=new MenuItem("Paste"+" "+"Ctrl+V");
MenuItem me5=new MenuItem("Delete"+" "+"Del");
MenuItem me6=new MenuItem("Find..."+" "+"Ctrl+F");
MenuItem me7=new MenuItem("Find Next"+" "+"F3");
MenuItem me8=new MenuItem("Replace..."+" "+"Ctrl+H");
MenuItem me9=new MenuItem("Go To"+" "+"Ctrl+G");
MenuItem me10=new MenuItem("Select All"+" "+"Ctrl+A");
MenuItem me11=new MenuItem("Date/Time"+" "+"F5");
MenuItem mfo1=new MenuItem("Word Wrap");
MenuItem mfo2=new MenuItem("Font...");
MenuItem mv1=new MenuItem("Status Bar");
MenuItem mh1=new MenuItem("Help Topics");
MenuItem mh2=new MenuItem("About Notepad");
public static void main(String args[])
{
DemoMenu dm=new DemoMenu();
}
public DemoMenu()
{
super("United- Notepad");
setMenuBar(bar);
bar.add(mf);
bar.add(me);
bar.add(mfo);
bar.add(mv);
bar.add(mh);
mf.add(mf1);
mf.add(mf2);
mf.add(mf3);
mf.add(mf4);
mf.addSeparator();
mf.add(mf5);
mf.add(mf6);
mf.addSeparator();
mf.add(mf7);
mf1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane smd=new JOptionPane();
smd.showMessageDialog(null,"Press Ok to open new page");
}
});
final JTextArea jta=new JTextArea(10,20);
JScrollPane scrl=new JScrollPane(jta);
frm.add(scrl);
mf2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser=new JFileChooser();
int selection=chooser.showOpenDialog(frm);
if(selection==JFileChooser.APPROVE_OPTION)
{
JOptionPane.showMessageDialog(null,"so u want to open the file...");
frm.setSize(520,540);
frm.setVisible(true);
File file = chooser.getSelectedFile();
FileInputStream fis=null;
try
{
fis=new FileInputStream(file);
byte b[]=new byte[fis.available()];
fis.read(b);
String str=new String(b);
jta.setText(str);
}
catch(Exception f)
{
f.printStackTrace();
}
}
}
});
mf3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser=new JFileChooser();
chooser.showSaveDialog(null);
}
});
mf4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser chooser=new JFileChooser();
chooser.showDialog(null,"Save As");
}
});
mf7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane scd=new JOptionPane();
scd.showConfirmDialog(null,"Are you want to exit");
}
});
me.add(me1);
me.addSeparator();
me.add(me2);
me.add(me3);
me.add(me4);
me.add(me5);
me.addSeparator();
me.add(me6);
me.add(me7);
me.add(me8);
me.add(me9);
me.addSeparator();
me.add(me10);
me.add(me11);
me11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Date d1=new Date();
JOptionPane smddate=new JOptionPane();
smddate.showMessageDialog(null,d1);
}
});
mfo.add(mfo1);
mfo.add(mfo2);
mv.add(mv1);
mh.add(mh1);
mh.addSeparator();
mh.add(mh2);
setSize(520,540);
setVisible(true);
}
}
1)와 같은 더 많은 봐. 모든 스윙을 유지하는 것이 가장 좋습니다. 2) 하나의 공백 라인이 항상 충분합니다! 3) 코드 블록에 일관되고 논리적 인 들여 쓰기를 사용하십시오. 코드의 들여 쓰기는 사람들이 프로그램 흐름을 이해하도록 돕기위한 것입니다. 4) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 나는 그것이 단지 1을 필요로한다고 의심되는 반면 나는 거기에 20 개 이상의 메뉴 항목을 참조하십시오. –