gpt4 book ai didi

java - 文本区域和菜单栏未显示

转载 作者:行者123 更新时间:2023-11-30 07:34:19 25 4
gpt4 key购买 nike

我是 java swing 的新手。我使用 java swing 编写了一个简单的文本编辑器,我在框架中添加了文本区域、菜单栏,但是当我运行该程序时,它只显示窗体,看不到文本区域和菜单栏,因为同一个程序有时效果很好。我不知道这是什么原因。有人可以帮帮我吗?

提前致谢!`

这是代码:-)

import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class TextEditor implements ActionListener {

JFrame frame;
JTextArea textArea;
JScrollPane scrollPane;
JMenuBar menuBar;

public TextEditor() {
frame = new JFrame("Note Pad");
frame.setVisible(true);
frame.setSize(1000, 1000);
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);
}

public static void main(String[] args) {
TextEditor te = new TextEditor();
}

@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);
}
}
}

最佳答案

关于发布 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);
}
}
}

关于java - 文本区域和菜单栏未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5231986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com