Java 文本区域和菜单栏未显示
我不熟悉java swing。我使用JavaSwing编写了一个简单的文本编辑器,我在框架中添加了文本区域和菜单栏,但当我运行程序时,它只显示表单,文本区域和菜单栏不可见,因为同一个程序有时工作得很好。我想不出这是什么原因。谁能帮帮我吗 提前谢谢` 下面是代码:-)Java 文本区域和菜单栏未显示,java,user-interface,swing,Java,User Interface,Swing,我不熟悉java swing。我使用JavaSwing编写了一个简单的文本编辑器,我在框架中添加了文本区域和菜单栏,但当我运行程序时,它只显示表单,文本区域和菜单栏不可见,因为同一个程序有时工作得很好。我想不出这是什么原因。谁能帮帮我吗 提前谢谢` 下面是代码:-) 使框架在构造函数的末尾可见 如果要将组件添加到可见容器中,则必须在之后对其进行validate()和repaint()以使更改可见。发布SSCCE的好方法 import java.awt.*; import java.awt.eve
使框架在构造函数的末尾可见
如果要将组件添加到可见容器中,则必须在之后对其进行
validate()
和repaint()
以使更改可见。发布SSCCE的好方法
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextEditor implements ActionListener {
JFrame frame;
JTextArea textArea;
JScrollPane scrollPane;
JMenuBar menuBar;
public TextEditor() {
frame = new JFrame("Note Pad");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("image.gif"));
textArea = new JTextArea(500, 500);
scrollPane = new JScrollPane(textArea);
menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenuItem newItem = new JMenuItem("New");
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem close = new JMenuItem("Close");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem paste = new JMenuItem("Paste");
JMenuItem delete = new JMenuItem("Delete");
newItem.addActionListener(this);
open.addActionListener(this);
save.addActionListener(this);
close.addActionListener(this);
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
delete.addActionListener(this);
fileMenu.add(newItem);
fileMenu.add(open);
fileMenu.add(save);
fileMenu.add(close);
editMenu.add(cut);
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(delete);
menuBar.add(fileMenu);
menuBar.add(editMenu);
frame.setJMenuBar(menuBar);
frame.add(scrollPane, BorderLayout.CENTER);
// Very important!
frame.pack();
// Sheesh! You kids and your enormous screens!
//frame.setSize(1000, 1000);
frame.setSize(600, 400);
}
public static void main(String[] args) {
// Always a good idea.
Runnable r = new Runnable() {
public void run() {
TextEditor te = new TextEditor();
}
};
SwingUtilities.invokeLater(r);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==menuBar.getMenu(0).getMenuComponent(0)) {
JFrame frame2=new JFrame();
frame2.setSize(300,300);
frame2.setVisible(true);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}
你应该发布代码,没有代码是不可能做出任何合理的评论的。嗨,我只是把代码。。。格式化代码;如果不正确,请回复。@Gursel Koca调用代码的好主意-必须投“伟大的评论”一票。你比我快了27分钟谢谢,很好的解释:-)+1,秘密成分是…!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextEditor implements ActionListener {
JFrame frame;
JTextArea textArea;
JScrollPane scrollPane;
JMenuBar menuBar;
public TextEditor() {
frame = new JFrame("Note Pad");
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setIconImage(Toolkit.getDefaultToolkit().getImage("image.gif"));
textArea = new JTextArea(500, 500);
scrollPane = new JScrollPane(textArea);
menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenuItem newItem = new JMenuItem("New");
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem close = new JMenuItem("Close");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem paste = new JMenuItem("Paste");
JMenuItem delete = new JMenuItem("Delete");
newItem.addActionListener(this);
open.addActionListener(this);
save.addActionListener(this);
close.addActionListener(this);
cut.addActionListener(this);
copy.addActionListener(this);
paste.addActionListener(this);
delete.addActionListener(this);
fileMenu.add(newItem);
fileMenu.add(open);
fileMenu.add(save);
fileMenu.add(close);
editMenu.add(cut);
editMenu.add(copy);
editMenu.add(paste);
editMenu.add(delete);
menuBar.add(fileMenu);
menuBar.add(editMenu);
frame.setJMenuBar(menuBar);
frame.add(scrollPane, BorderLayout.CENTER);
// Very important!
frame.pack();
// Sheesh! You kids and your enormous screens!
//frame.setSize(1000, 1000);
frame.setSize(600, 400);
}
public static void main(String[] args) {
// Always a good idea.
Runnable r = new Runnable() {
public void run() {
TextEditor te = new TextEditor();
}
};
SwingUtilities.invokeLater(r);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==menuBar.getMenu(0).getMenuComponent(0)) {
JFrame frame2=new JFrame();
frame2.setSize(300,300);
frame2.setVisible(true);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
}