java如何在JTabbedPane的选项卡中添加JScrollPane
我想用JScrollPane在JTabbedPane中包装一个“选项卡”。但我找不到办法。这是我到目前为止的代码
“HomeDelivery.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();
}
}
“Burger.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,我将能够通过以下操作添加滚动窗格: JScrollPane scroll=新的JScrollPane(JPanel,JScrollPane.垂直滚动条总是,JScrollPane.水平滚动条从不)
但是,我现在如何在“Burger.java”中做到这一点呢?如何在我的“汉堡”选项卡中添加JScrollPane
# 1 楼答案
编辑:不要扩展^{,这里不需要
你可以:
JPanel
将
JPanel
添加到JScrollPane
^{JScrollPane
添加到JTabbedPane
例如:
# 2 楼答案
像这样的问题的第一站是公共JavaAPI文档。在那里你会发现另一个
JScrollPane
的构造函数:http://docs.oracle.com/javase/8/docs/api/javax/swing/JScrollPane.html#JScrollPane-java.awt.Component-int-int-
根据这一点,您的问题可以通过以下方式解决: