Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在JTextArea上添加JScrollPane?_Java_Jscrollpane_Jtextarea - Fatal编程技术网

Java 如何在JTextArea上添加JScrollPane?

Java 如何在JTextArea上添加JScrollPane?,java,jscrollpane,jtextarea,Java,Jscrollpane,Jtextarea,在这里,如果我使用的是构造函数,那么它不会做任何事情&我不想添加带有setBounds()的滚动窗格,所以任何人都可以帮助我摆脱这个问题。。。 我的代码是 import java.awt.*; import java.awt.event.*; import javax.swing.*; class MyMenu implements ActionListener { JTextField tf=new JTextField(); JFrame jf=new JFrame("M

在这里,如果我使用的是构造函数,那么它不会做任何事情&我不想添加带有setBounds()的滚动窗格,所以任何人都可以帮助我摆脱这个问题。。。 我的代码是

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyMenu implements ActionListener
{

    JTextField tf=new JTextField();
    JFrame jf=new JFrame("My Menu");
    JMenuBar menubar;
    JMenu menu,SubMenu;
    JMenuItem menuItem,exit;
    JScrollPane jp;
    JRadioButtonMenuItem rbMenuItem;
    JCheckBoxMenuItem cbMenuItem;

    MyMenu()
    {
        jf.add(tf);
        menubar=new JMenuBar();
        menu=new JMenu("First Menu");
        menu.setMnemonic(KeyEvent.VK_F);
        menubar.add(menu);


        jp=new JScrollPane()
        jf.add(jp);
        menuItem=new JMenuItem("Ank");
        //menuItem.setActionCommand("Ank");
        menuItem.addActionListener(this);
        KeyStroke i=KeyStroke.getKeyStroke(KeyEvent.VK_1,ActionEvent.CTRL_MASK);
        menuItem.setAccelerator(i);
        menu.add(menuItem);

        //a grp of radioButton menu items
        ButtonGroup group=new ButtonGroup();
        rbMenuItem =new JRadioButtonMenuItem("Radio Button menu item");
        rbMenuItem.setSelected(true);
        rbMenuItem.setMnemonic(KeyEvent.VK_R);
        group.add(rbMenuItem);
        rbMenuItem=new JRadioButtonMenuItem("Another one");
        rbMenuItem.setMnemonic(KeyEvent.VK_O);
        group.add(rbMenuItem);
        menu.addSeparator();

        cbMenuItem=new JCheckBoxMenuItem("A check box menu item");
        cbMenuItem.setMnemonic(KeyEvent.VK_C);
        menu.add(cbMenuItem);
        cbMenuItem=new JCheckBoxMenuItem("ANother1");
        cbMenuItem.setMnemonic(KeyEvent.VK_H);
        menu.add(cbMenuItem);

        //a submenu
        menu.addSeparator();
        SubMenu=new JMenu("A SUbmenu");
        SubMenu.setMnemonic(KeyEvent.VK_S);

        menuItem=new JMenuItem(" Item q");

        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,ActionEvent.ALT_MASK));
        SubMenu.add(menuItem);

        menuItem=new JMenuItem("Another q");
        SubMenu.add(menuItem);
        menu.add(SubMenu);
        exit=new JMenuItem("EXIT");
        exit.addActionListener(this);
        menu.add(exit);

        //..Build a second menu.
        menu =new JMenu("another Menu");
        menu.setMnemonic(KeyEvent.VK_N);
        menubar.add(menu);
        jf.setJMenuBar(menubar);
        jf.setSize(300,400);
        jf.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        if(e.getActionCommand().equals("EXIT"))
        {
            System.exit(0);
        }

        if(e.getActionCommand().equals("Ank1"))
        {
            tf.setText("helloo");
        }
    }

    public static void main(String... c)
    {
        new MyMenu();
    }
}

此外,如果我使用构造函数并将JTextField传递给它,那么什么也不会发生

对我来说似乎还行

改变

jf.add(tf);

可运行的示例

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

class MyMenu implements ActionListener {

    JTextField tf = new JTextField();
    JFrame jf = new JFrame("My Menu");
    JMenuBar menubar;
    JMenu menu, SubMenu;
    JMenuItem menuItem, exit;
    JScrollPane jp;
    JRadioButtonMenuItem rbMenuItem;
    JCheckBoxMenuItem cbMenuItem;

    MyMenu() {
        jf.add(tf, BorderLayout.NORTH);
        menubar = new JMenuBar();
        menu = new JMenu("First Menu");
        menu.setMnemonic(KeyEvent.VK_F);
        menubar.add(menu);

        jp = new JScrollPane(new JTextArea(10, 20));
        jf.add(jp);
        menuItem = new JMenuItem("Ank");
        //menuItem.setActionCommand("Ank");
        menuItem.addActionListener(this);
        KeyStroke i = KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.CTRL_MASK);
        menuItem.setAccelerator(i);
        menu.add(menuItem);

        //a grp of radioButton menu items
        ButtonGroup group = new ButtonGroup();
        rbMenuItem = new JRadioButtonMenuItem("Radio Button menu item");
        rbMenuItem.setSelected(true);
        rbMenuItem.setMnemonic(KeyEvent.VK_R);
        group.add(rbMenuItem);
        rbMenuItem = new JRadioButtonMenuItem("Another one");
        rbMenuItem.setMnemonic(KeyEvent.VK_O);
        group.add(rbMenuItem);
        menu.addSeparator();

        cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
        cbMenuItem.setMnemonic(KeyEvent.VK_C);
        menu.add(cbMenuItem);
        cbMenuItem = new JCheckBoxMenuItem("ANother1");
        cbMenuItem.setMnemonic(KeyEvent.VK_H);
        menu.add(cbMenuItem);

        //a submenu
        menu.addSeparator();
        SubMenu = new JMenu("A SUbmenu");
        SubMenu.setMnemonic(KeyEvent.VK_S);

        menuItem = new JMenuItem(" Item q");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
        SubMenu.add(menuItem);

        menuItem = new JMenuItem("Another q");
        SubMenu.add(menuItem);
        menu.add(SubMenu);
        exit = new JMenuItem("EXIT");
        exit.addActionListener(this);
        menu.add(exit);

        //..Build a second menu.
        menu = new JMenu("another Menu");
        menu.setMnemonic(KeyEvent.VK_N);
        menubar.add(menu);
        jf.setJMenuBar(menubar);
        jf.pack();
        jf.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("EXIT")) {
            System.exit(0);
        }
        if (e.getActionCommand().equals("Ank1")) {
            tf.setText("helloo");
        }
    }

    public static void main(String... c) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                new MyMenu();
            }
        });
    }
}
请仔细查看,如需了解更多详细信息,请尝试以下操作:

JTextArea tf = new JTextArea(10, 20);

JScrollPane scrollBar = new JScrollPane(tf);

您只需将滚动条添加到JFrame。

1-滚动窗格中没有任何内容;2-将文本字段和滚动窗格添加到同一位置(隐藏文本字段)。这是因为框架使用了默认JTextArea=new JTextArea()的BorderLayout;JScrollPane jp;/。。。。。。。。。。jp=新的JScrollPane(面积);jf.add(jp),;什么也没发生
jp = new JScrollPane(new JTextArea(10, 20));
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

class MyMenu implements ActionListener {

    JTextField tf = new JTextField();
    JFrame jf = new JFrame("My Menu");
    JMenuBar menubar;
    JMenu menu, SubMenu;
    JMenuItem menuItem, exit;
    JScrollPane jp;
    JRadioButtonMenuItem rbMenuItem;
    JCheckBoxMenuItem cbMenuItem;

    MyMenu() {
        jf.add(tf, BorderLayout.NORTH);
        menubar = new JMenuBar();
        menu = new JMenu("First Menu");
        menu.setMnemonic(KeyEvent.VK_F);
        menubar.add(menu);

        jp = new JScrollPane(new JTextArea(10, 20));
        jf.add(jp);
        menuItem = new JMenuItem("Ank");
        //menuItem.setActionCommand("Ank");
        menuItem.addActionListener(this);
        KeyStroke i = KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.CTRL_MASK);
        menuItem.setAccelerator(i);
        menu.add(menuItem);

        //a grp of radioButton menu items
        ButtonGroup group = new ButtonGroup();
        rbMenuItem = new JRadioButtonMenuItem("Radio Button menu item");
        rbMenuItem.setSelected(true);
        rbMenuItem.setMnemonic(KeyEvent.VK_R);
        group.add(rbMenuItem);
        rbMenuItem = new JRadioButtonMenuItem("Another one");
        rbMenuItem.setMnemonic(KeyEvent.VK_O);
        group.add(rbMenuItem);
        menu.addSeparator();

        cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
        cbMenuItem.setMnemonic(KeyEvent.VK_C);
        menu.add(cbMenuItem);
        cbMenuItem = new JCheckBoxMenuItem("ANother1");
        cbMenuItem.setMnemonic(KeyEvent.VK_H);
        menu.add(cbMenuItem);

        //a submenu
        menu.addSeparator();
        SubMenu = new JMenu("A SUbmenu");
        SubMenu.setMnemonic(KeyEvent.VK_S);

        menuItem = new JMenuItem(" Item q");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
        SubMenu.add(menuItem);

        menuItem = new JMenuItem("Another q");
        SubMenu.add(menuItem);
        menu.add(SubMenu);
        exit = new JMenuItem("EXIT");
        exit.addActionListener(this);
        menu.add(exit);

        //..Build a second menu.
        menu = new JMenu("another Menu");
        menu.setMnemonic(KeyEvent.VK_N);
        menubar.add(menu);
        jf.setJMenuBar(menubar);
        jf.pack();
        jf.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("EXIT")) {
            System.exit(0);
        }
        if (e.getActionCommand().equals("Ank1")) {
            tf.setText("helloo");
        }
    }

    public static void main(String... c) {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                new MyMenu();
            }
        });
    }
}
JTextArea tf = new JTextArea(10, 20);

JScrollPane scrollBar = new JScrollPane(tf);