gpt4 book ai didi

java - 无论我将 JScrollPane 分配给哪个面板或容器,它都无法工作

转载 作者:行者123 更新时间:2023-12-01 11:26:02 25 4
gpt4 key购买 nike

所以我一直在尝试让 JScrollPane 在我的页面上工作,但它就是不行!我有一个超出设置范围的表格,我正在尝试对其进行设置,以便我可以向下滚动并查看所有内容。

我尝试将 JScrollPane 添加到所有容器面板,但它不会让步:+| - 我不明白为什么如果我将它分配给 mainCon (this.getContentPane()) 它就不起作用,因为如果它确实以这种方式工作,它只会使整个窗口可滚动!

正如你所见,我没有做过任何花哨的布局或任何事情,我只是想让功能正常工作!但我需要先让 JScrollPane 正常工作,然后才能尝试设计所有 GUIS 的样式!

这是我的代码:

public class searchAll extends JFrame implements ActionListener {
private MemTableModel memberTableModel;
private int selectedRow;

//JOptionPane
//Confirm Dialog
private int dialogButton = JOptionPane.YES_NO_OPTION;


//GUI RELATED
private JTable table = new JTable();

//JButtons
private JButton btnDelete = new JButton("Delete");
private JButton btnEdit = new JButton("Edit");
private JButton saveMember = new JButton("Save member");
private JButton btnBack = new JButton("Back");

//Containers, panels
Container mainCon = this.getContentPane();
JPanel formPanel = new JPanel();

//Adding scroll pane here - to formPanel which holds everything.
JScrollPane scrollPane = new JScrollPane(formPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);


/*TEXT FIELDS BOXES *******************************/
private JLabel lblName = new JLabel("Name: ");
private JTextField txtName = new JTextField("", 15);

private JLabel lblEmail = new JLabel("Email: ");
private JTextField txtEmail = new JTextField("", 15);

private JLabel lblDescription = new JLabel("Description about you: ");
private JTextArea txtDescription = new JTextArea("", 5, 15);
/*TEXT FIELDS BOXES *******************************/

/*COMBO BOXES *******************************/
private JLabel lblCountry = new JLabel();
private JComboBox comCountry = new JComboBox();

private JLabel lblGenre = new JLabel();
private JComboBox comGenre = new JComboBox();
/*COMBO BOXES *******************************/

/*RADIO BUTTONS *******************************/
private JLabel lblMaleFemale = new JLabel("Gender: ");
private JRadioButton radMale = new JRadioButton("Male: ");
private JRadioButton radFemale = new JRadioButton("Female: ");
private ButtonGroup buttonGroupMF = new ButtonGroup();

private JLabel lblFreePaid = new JLabel("Membership Type: ");
private JRadioButton radFree = new JRadioButton("Free: ");
private JRadioButton radPaid = new JRadioButton("Paid: ");
private ButtonGroup buttonGroupFP = new ButtonGroup();
/*RADIO BUTTONS *******************************/

/*PAID MEMBER STUFF *******************************/
private JLabel lblCardNo = new JLabel("Card Number: ");
private JTextField txtCardNo = new JTextField("", 15);

private JLabel lblExpiry = new JLabel();
private JComboBox comExpiry = new JComboBox();
/*PAID MEMBER STUFF *******************************/

//DB SQL Variables -
private String edName = "";
private String edEmail = "";
private String edDescription = "";
private String edCountry = "";
private String edGenre = "";
private String edGender = "";
private String edMembType = "";
private String edCardNo = "";
private Object edExpiry = "";
private String edSongLim = "";

//DB
private Connection conDB = null;
private Statement stmt = null;
private ResultSet r = null;

//Validation isValid
private boolean isValid;

public searchAll(){
super("Search/Edit/Delete");
this.setBounds(400, 500, 854,400);
// this.setPreferredSize(new Dimension(500,500));
this.setVisible(true);
memberTableModel = new MemTableModel();

//Add table and GUI components
mainCon.add(BorderLayout.NORTH, btnBack);
btnBack.addActionListener(this);
mainCon.add(scrollPane);
mainCon.add(formPanel);
formPanel.setPreferredSize(new Dimension(500,500));


formPanel.add(table);
formPanel.add(btnDelete);
formPanel.add(btnEdit);
//Tried doing this - But didn't work. Just stayed static
// formPanel.add(scrollPane);

//Add action listeners

btnEdit.addActionListener(this);
btnDelete.addActionListener(this);
table.setModel(memberTableModel);

//Set Selection model for table
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e){
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
selectedRow = lsm.getMinSelectionIndex();
System.out.println(selectedRow);
}
});

}


//Connection Method
public Connection getConnection(){
Connection conDB = null;
/****** DEFAULT MYSQL DRIVERS **************************/
String url = connection.geturl();
String username = connection.getUsername();
String password = connection.getPassword();
try{
//load the MYSQL driver
Class.forName(connection.getDriver());
conDB = DriverManager.getConnection(url, username, password);
}
catch(Exception e){
System.out.println("Error was: " + e);
}
return conDB;
}

/*-------ACTION PERFORMED ------------------------------*/
int editCounter = 0;
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnBack){
this.dispose();
}

//DELETE BUTTON BELOW
/*########################################################################*/

if(e.getSource() == btnDelete){

System.out.println("Ran btnDelete");
deleteMember();

}
/*########################################################################*/

//EDIT BUTTON BELOW

/*########################################################################*/

if(e.getSource() == btnEdit){
if(editCounter == 0)
{
System.out.println("Ran btnEdit");
editFunction();
editCounter++;
}
else{
formPanel.repaint();
System.out.println("Stop duplicating form inputs");
}

}
/*########################################################################*/

//SAVE MEMBER BUTTON BELOW

/*########################################################################*/
if(e.getSource() == saveMember){
System.out.println("Ran btnSaveMember");
//UPDATE VALUES
if(radMale.isSelected()){
edGender = "Male";
}
else if(radFemale.isSelected()){
edGender = "Female";
}
if(radPaid.isSelected()){
edMembType = "Paid";
edSongLim = "100";
edCardNo = txtCardNo.getText();
edExpiry = comExpiry.getSelectedItem();
txtCardNo.setEnabled(true);

}
else{
edMembType = "Free";
edSongLim = "10";
edCardNo = "";
edExpiry = "";
txtCardNo.setEnabled(false);

}
//Validate the form
if(txtName.getText().equals(""))
{
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a name please");
}
else{
isValid = true;
if(txtEmail.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter an Email please");
}
else
{
isValid = true;
if(txtDescription.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a Description please");
}
else
{
isValid = true;
if(radPaid.isSelected()){
if(txtCardNo.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a Card Number please");
}
else{
isValid = true;
}
}

}
}
}
//If the form is good, execute the update
if(isValid){
saveMember();
}
}//End of saveMember Button
}//End of action performed
/*########################################################################*/

//DELETE MEMBER BELOW

/*#######################DELETE MEMBER####################################*/
public void deleteMember(){
member m = memberTableModel.getRow(selectedRow);
System.out.println("in BTN delete");
try{
//Connection + Statement
conDB = getConnection();
stmt = conDB.createStatement();
String sqlDeleteMem = "delete from members where membId = " + m.getmembId();

//Confirm Dialog - If they click yes dialogResult will = 0
int dialogResult =
JOptionPane.showConfirmDialog(this, "Are you sure you want to delete " + m.getname()
, "Delete Confirmation", dialogButton);
String sqlDeletePlay = "delete from playlist where membId = " + m.getmembId();
if(dialogResult == 0){
stmt.executeUpdate(sqlDeleteMem);
//Delete the playlists associated with the member.
stmt.executeUpdate(sqlDeletePlay);
System.out.println(m.getname() + " Deleted");
}
else{
JOptionPane.showMessageDialog(null, m.getname() + " was not deleted");
}

//Close the DB connection
// stmt.close();
// conDB.close();


}
catch(SQLException er){
System.out.println("Error was: " + er);
}
memberTableModel.LoadTableFromDB();
memberTableModel.fireTableRowsDeleted(selectedRow, selectedRow);
}

/*#########################################################################*/

//SAVE MEMBER BELOW

/*#######################SAVE MEMBER####################################*/
public void saveMember(){
member m = memberTableModel.getRow(selectedRow);
System.out.println("Save member 1");

try{
//CHANGE THE VALUES SO WHEN CLICKS SAVE MEM

/*-------------------------------------*/


//Connection + Statement
conDB = getConnection();
stmt = conDB.createStatement();

//Update Query
String sqlUpdateMem = "UPDATE members SET name = '" + txtName.getText() + "', " +
"email = '" + txtEmail.getText() + "', "
+ "country = '" + comCountry.getSelectedItem() + "', "
+ "favGenre = '" + comGenre.getSelectedItem() + "', "
+ "gender = '" + edGender + "', "
+ "description = '" + txtDescription.getText() + "', "
+ "memberType = '" + edMembType + "', "
+ "songLimit = '" + edSongLim + "', "
+ "card_no = '" + edCardNo + "', "
+ "expiry_date = '" + edExpiry + "' WHERE membId = '"
+ m.getmembId() + "'";
System.out.println(sqlUpdateMem);


System.out.println("Save member 2");

stmt.executeUpdate(sqlUpdateMem);
editCounter = 0;

System.out.println("Updated Member");
//Close the DB connection
conDB.close();
}
catch(SQLException er){
System.out.println("Error was: " + er);
}
}
/*###########################################################################*/

//ADD INPUT FIELDS BELOW

/*#######################INPUT FIELDS####################################*/
public void showInputFields(){
formPanel.setLayout(new FlowLayout());

/*TEXT FIELDS BOXES *******************************/
formPanel.add(lblName);
formPanel.add(txtName);

formPanel.add(lblEmail);
formPanel.add(txtEmail);

formPanel.add(lblDescription);
formPanel.add(txtDescription);
/*TEXT FIELDS BOXES *******************************/



/*COMBO BOXES *******************************/

//Combo Box ( Countrys )
formPanel.add(lblCountry);
formPanel.add(comCountry);
comCountry.addItem("Australia");
comCountry.addItem("New Zealand");
comCountry.addItem("Tasmania");
comCountry.addActionListener(this);
//Combo Box ( Fav Genre )
formPanel.add(lblGenre);
formPanel.add(comGenre);
comGenre.addItem("Pop");
comGenre.addItem("Rock");
comGenre.addItem("Alternative");
comGenre.addItem("Jazz");
comGenre.addItem("Hip/Hop");

comGenre.addActionListener(this);

/*COMBO BOXES *******************************/


/*RADIO BUTTONS BOXES *******************************/
//Radio Buttons (Male/Female)
buttonGroupMF.add(radMale);
buttonGroupMF.add(radFemale);

formPanel.add(radMale);
formPanel.add(radFemale);

radMale.addActionListener(this);
radFemale.addActionListener(this);

//Free or paid members ------
buttonGroupFP.add(radFree);
buttonGroupFP.add(radPaid);

formPanel.add(radFree);
formPanel.add(radPaid);

radFree.addActionListener(this);
radPaid.addActionListener(this);
//Free or paid members ------
/*RADIO BUTTONS BOXES *******************************/


/*PAID MEMBER GUI *******************************/


formPanel.add(lblCardNo);
formPanel.add(txtCardNo);
//Hide
lblCardNo.setVisible(true);
txtCardNo.setVisible(true);


formPanel.add(lblExpiry);
formPanel.add(comExpiry);
comExpiry.addItem("2017");
comExpiry.addItem("2018");
comExpiry.addItem("2019");

//Hide
lblExpiry.setVisible(true);
comExpiry.setVisible(true);
comExpiry.addActionListener(this);

/*PAID MEMBER GUI *******************************/

//Add the button after everything
formPanel.add(saveMember);
saveMember.addActionListener(this);
}
/*###########################################################################*/

//EDIT MEMBER BELOW

/*#######################EDIT MEMBER####################################*/
public void editFunction(){

member m = memberTableModel.getRow(selectedRow);
System.out.println("in BTN edit 1");
//Add boolean value here - Can submit
showInputFields();
try{
System.out.println(" hihi" + m.getmembId());
//Connection + Statement
conDB = getConnection();
stmt = conDB.createStatement();
System.out.println(" hihi" + m.getmembId());
System.out.println("in BTN edit 2");
String sqlEdit = "select * from members where membId = " + m.getmembId();

r = stmt.executeQuery(sqlEdit);
System.out.println("in BTN edit 3");
if(r.next()){
System.out.println("in BTN edit 4");
//Set text for each TextField - Also assign the values to variables
//The variables are used in the SQL UPDATE Query.
//SET THE VALUES FOR THE INPUT FIELDS FROM DB ----------
txtName.setText(r.getString("name"));
txtEmail.setText(r.getString("email"));
txtDescription.setText(r.getString("description"));
comCountry.setSelectedItem(r.getString("country"));
comGenre.setSelectedItem(r.getString("favGenre"));
txtCardNo.setText(r.getString("card_no"));
comExpiry.setSelectedItem(r.getString("expiry_date"));
if(r.getString("memberType").equals("Paid")){
radPaid.setSelected(true);
}
else{
radFree.setSelected(true);
}
if(r.getString("gender").equals("Male")){
radMale.setSelected(true);
// edGender = "Male";
}
else{
radFemale.setSelected(true);
// edGender = "Female";
}
//---------------------------------------------------------
System.out.println("in BTN edit 5");
}
}
catch(SQLException er){
System.out.println("Error was: " + er);
}
memberTableModel.LoadTableFromDB();
System.out.println("in BTN edit 6");
System.out.println("in BTN edit 7");
}
/*##########################################################################*/


}

最佳答案

JPanel formPanel = new JPanel();

//Adding scroll pane here - to formPanel which holds everything.
JScrollPane scrollPane = new JScrollPane(formPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

...

mainCon.add(scrollPane);
mainCon.add(formPanel);

您不应该在代码中重新影响 formPanel (它将丢失其已分配的父级),只需添加已包含您的 formPanelscrollPane >

<小时/>
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
public class Test2 {

public static void main(String args[]) throws Exception {
new SearchAll().setVisible(true);

}

public static class SearchAll extends JFrame implements ActionListener {
private int selectedRow;

//JOptionPane
//Confirm Dialog
private int dialogButton = JOptionPane.YES_NO_OPTION;


//GUI RELATED
private JTable table = new JTable();

//JButtons
private JButton btnDelete = new JButton("Delete");
private JButton btnEdit = new JButton("Edit");
private JButton saveMember = new JButton("Save member");
private JButton btnBack = new JButton("Back");

//Containers, panels
Container mainCon = this.getContentPane();
JPanel formPanel = new JPanel();

//Adding scroll pane here - to formPanel which holds everything.
JScrollPane scrollPane = new JScrollPane(formPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);


/*TEXT FIELDS BOXES *******************************/
private JLabel lblName = new JLabel("Name: ");
private JTextField txtName = new JTextField("", 15);

private JLabel lblEmail = new JLabel("Email: ");
private JTextField txtEmail = new JTextField("", 15);

private JLabel lblDescription = new JLabel("Description about you: ");
private JTextArea txtDescription = new JTextArea("", 5, 15);
/*TEXT FIELDS BOXES *******************************/

/*COMBO BOXES *******************************/
private JLabel lblCountry = new JLabel();
private JComboBox comCountry = new JComboBox();

private JLabel lblGenre = new JLabel();
private JComboBox comGenre = new JComboBox();
/*COMBO BOXES *******************************/

/*RADIO BUTTONS *******************************/
private JLabel lblMaleFemale = new JLabel("Gender: ");
private JRadioButton radMale = new JRadioButton("Male: ");
private JRadioButton radFemale = new JRadioButton("Female: ");
private ButtonGroup buttonGroupMF = new ButtonGroup();

private JLabel lblFreePaid = new JLabel("Membership Type: ");
private JRadioButton radFree = new JRadioButton("Free: ");
private JRadioButton radPaid = new JRadioButton("Paid: ");
private ButtonGroup buttonGroupFP = new ButtonGroup();
/*RADIO BUTTONS *******************************/

/*PAID MEMBER STUFF *******************************/
private JLabel lblCardNo = new JLabel("Card Number: ");
private JTextField txtCardNo = new JTextField("", 15);

private JLabel lblExpiry = new JLabel();
private JComboBox comExpiry = new JComboBox();
/*PAID MEMBER STUFF *******************************/

//DB SQL Variables -
private String edName = "";
private String edEmail = "";
private String edDescription = "";
private String edCountry = "";
private String edGenre = "";
private String edGender = "";
private String edMembType = "";
private String edCardNo = "";
private Object edExpiry = "";
private String edSongLim = "";

//DB
private Connection conDB = null;
private Statement stmt = null;
private ResultSet r = null;

//Validation isValid
private boolean isValid;

public SearchAll(){
super("Search/Edit/Delete");
this.setBounds(400, 500, 854,400);
// this.setPreferredSize(new Dimension(500,500));
this.setVisible(true);

//Add table and GUI components
mainCon.add(BorderLayout.NORTH, btnBack);
btnBack.addActionListener(this);
mainCon.add(scrollPane);


formPanel.add(table);
formPanel.add(btnDelete);
formPanel.add(btnEdit);
//Tried doing this - But didn't work. Just stayed static
// formPanel.add(scrollPane);

//Add action listeners

btnEdit.addActionListener(this);
btnDelete.addActionListener(this);

//Set Selection model for table
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setModel(new DefaultTableModel(100, 8));

ListSelectionModel rowSM = table.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e){
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
selectedRow = lsm.getMinSelectionIndex();
System.out.println(selectedRow);
}
});

}


/*-------ACTION PERFORMED ------------------------------*/
int editCounter = 0;
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnBack){
this.dispose();
}

//DELETE BUTTON BELOW
/*########################################################################*/

if(e.getSource() == btnDelete){

System.out.println("Ran btnDelete");
}
/*########################################################################*/

//EDIT BUTTON BELOW

/*########################################################################*/

if(e.getSource() == btnEdit){
if(editCounter == 0)
{
System.out.println("Ran btnEdit");
editCounter++;
}
else{
formPanel.repaint();
System.out.println("Stop duplicating form inputs");
}

}
/*########################################################################*/

//SAVE MEMBER BUTTON BELOW

/*########################################################################*/
if(e.getSource() == saveMember){
System.out.println("Ran btnSaveMember");
//UPDATE VALUES
if(radMale.isSelected()){
edGender = "Male";
}
else if(radFemale.isSelected()){
edGender = "Female";
}
if(radPaid.isSelected()){
edMembType = "Paid";
edSongLim = "100";
edCardNo = txtCardNo.getText();
edExpiry = comExpiry.getSelectedItem();
txtCardNo.setEnabled(true);

}
else{
edMembType = "Free";
edSongLim = "10";
edCardNo = "";
edExpiry = "";
txtCardNo.setEnabled(false);

}
//Validate the form
if(txtName.getText().equals(""))
{
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a name please");
}
else{
isValid = true;
if(txtEmail.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter an Email please");
}
else
{
isValid = true;
if(txtDescription.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a Description please");
}
else
{
isValid = true;
if(radPaid.isSelected()){
if(txtCardNo.getText().equals("")){
isValid = false;
JOptionPane.showMessageDialog(null, "Enter a Card Number please");
}
else{
isValid = true;
}
}

}
}
}
//If the form is good, execute the update
if(isValid){
}
}//End of saveMember Button
}//End of action performed
/*########################################################################*/

//DELETE MEMBER BELOW

/*#######################DELETE MEMBER####################################*/

/*#########################################################################*/

//SAVE MEMBER BELOW

/*#######################SAVE MEMBER####################################*/
/*###########################################################################*/

//ADD INPUT FIELDS BELOW

/*#######################INPUT FIELDS####################################*/
public void showInputFields(){
formPanel.setLayout(new FlowLayout());

/*TEXT FIELDS BOXES *******************************/
formPanel.add(lblName);
formPanel.add(txtName);

formPanel.add(lblEmail);
formPanel.add(txtEmail);

formPanel.add(lblDescription);
formPanel.add(txtDescription);
/*TEXT FIELDS BOXES *******************************/



/*COMBO BOXES *******************************/

//Combo Box ( Countrys )
formPanel.add(lblCountry);
formPanel.add(comCountry);
comCountry.addItem("Australia");
comCountry.addItem("New Zealand");
comCountry.addItem("Tasmania");
comCountry.addActionListener(this);
//Combo Box ( Fav Genre )
formPanel.add(lblGenre);
formPanel.add(comGenre);
comGenre.addItem("Pop");
comGenre.addItem("Rock");
comGenre.addItem("Alternative");
comGenre.addItem("Jazz");
comGenre.addItem("Hip/Hop");

comGenre.addActionListener(this);

/*COMBO BOXES *******************************/


/*RADIO BUTTONS BOXES *******************************/
//Radio Buttons (Male/Female)
buttonGroupMF.add(radMale);
buttonGroupMF.add(radFemale);

formPanel.add(radMale);
formPanel.add(radFemale);

radMale.addActionListener(this);
radFemale.addActionListener(this);

//Free or paid members ------
buttonGroupFP.add(radFree);
buttonGroupFP.add(radPaid);

formPanel.add(radFree);
formPanel.add(radPaid);

radFree.addActionListener(this);
radPaid.addActionListener(this);
//Free or paid members ------
/*RADIO BUTTONS BOXES *******************************/


/*PAID MEMBER GUI *******************************/


formPanel.add(lblCardNo);
formPanel.add(txtCardNo);
//Hide
lblCardNo.setVisible(true);
txtCardNo.setVisible(true);


formPanel.add(lblExpiry);
formPanel.add(comExpiry);
comExpiry.addItem("2017");
comExpiry.addItem("2018");
comExpiry.addItem("2019");

//Hide
lblExpiry.setVisible(true);
comExpiry.setVisible(true);
comExpiry.addActionListener(this);

/*PAID MEMBER GUI *******************************/

//Add the button after everything
formPanel.add(saveMember);
saveMember.addActionListener(this);
}
/*###########################################################################*/

//EDIT MEMBER BELOW

/*#######################EDIT MEMBER####################################*/
/*##########################################################################*/


}
}

关于java - 无论我将 JScrollPane 分配给哪个面板或容器,它都无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801313/

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