java - 我如何在 JTabbedPane 的选项卡中添加 JScrollPane

标签 java swing jscrollpane jtabbedpane

我想用 JScrollPane 在 JTabbedPane 中包装一个“Tab”。但是我找不到方法。这是我目前的代码...

“送货上门.java”

import java.sql.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.LineBorder;

class HomeDelivery extends JFrame
{
JTabbedPane menu;
JPanel pizza,pastry,drinks;

public HomeDelivery()
{
    setSize(800,800);
    setVisible(true);
    setLayout(new BorderLayout());

    setDefaultCloseOperation(EXIT_ON_CLOSE);

    menu = new JTabbedPane();

    menu.addTab("Burger",new Burger());

    pizza = new JPanel();
    menu.addTab("Pizza",pizza);

    pastry = new JPanel();
    menu.addTab("Pastry",pastry);

    drinks = new JPanel();
    menu.addTab("Drinks",drinks);

    add(menu);
}

public static void main(String args[])
{
    HomeDelivery h = new HomeDelivery();
}
}

“汉堡.java”

import java.sql.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.LineBorder;

class Burger extends JPanel
{
JFrame f;
//JPanel s;
JPanel p[];
JLabel image[];
JLabel name[];
JLabel price[];
JButton b[];
JScrollPane scroll;
int row;

public Burger()
{   
    p = new JPanel[40];
    image = new JLabel[40];
    name = new JLabel[40];
    price = new JLabel[40];
    b = new JButton[40];

    for(int i=0;i<40;i++)
    {
        p[i] = new JPanel();
        p[i].setLayout(new BoxLayout(p[i],BoxLayout.LINE_AXIS));
        p[i].add(Box.createRigidArea(new Dimension(100,50)));
        image[i] = new JLabel("Image");
        b[i] = new JButton("ADD");
        name[i] = new JLabel("Burger");
        price[i] = new JLabel("150");

        p[i].add(image[i]);
        p[i].add(name[i]);
        p[i].add(price[i]);
        p[i].add(b[i]);

        add(p[i]);
    }

    scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scroll.setPreferredSize(new Dimension(100,50));
    add(scroll);
}
}

在“Burger.java”部分的最后,我尝试添加一个 JScrollPane,虽然我知道这不是我做的正确方法。如果我没有在“Burger.java”中扩展 JPanel,我将能够通过这样做来添加一个滚动 Pane : “JScrollPane scroll = new JScrollPane(JPanel,JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_​​NEVER);”

但是,我现在如何在“Burger.java”中做到这一点?如何在我的“Burger”“Tab”中添加 JScrollPane? ...

最佳答案

解决此类问题的第一站是公共(public) Java API 文档。您会在那里找到 JScrollPane 的另一个构造函数:

http://docs.oracle.com/javase/8/docs/api/javax/swing/JScrollPane.html#JScrollPane-java.awt.Component-int-int-

据此,您的问题可以通过以下方式解决:

scroll = new JScrollPane(p,  JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

关于java - 我如何在 JTabbedPane 的选项卡中添加 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307943/

相关文章:

java - 是否可以在 GWT 中循环遍历网格图?

java - 通过套接字发送两个列表

java - 限制 JTextField 的字符数

java - JList 项中的自动换行

java - 部分失败时的 executeBatch 行为

java - 如何从java中的资源文件夹中读取文件?

java - 从右到左方向按钮大小的无关变化

java - JScrollPane 不显示在滚动上

java - 批量上传和 Java servlet

java - 如何在 Java 中获取 "datasheet"功能