gpt4 book ai didi

java - 具有空布局的动态填充 JPanel 上的 JScrollPane

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

我想要在我的 GUI 上有一个滚动 Pane 。我想要“可滚动”的区域是一个没有任何 LayoutManager 的 JPanel,因为内容介于静态和动态之间......但也许我的代码的一部分会有所帮助

这里是:

pane = getContentPane();

jpane = new JPanel();
// jpane.setBounds(0, 75, 680, 255);
jpane.setLayout(null);

jsp = new JScrollPane(jpane, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jsp.setBounds(0, 75, 680, 255);
jsp.setPreferredSize(new Dimension(680,255));
pane.add(jsp);

我的 JPanel 将充满这段代码...

for(int i = 0; i < Integer.parseInt(spaltenzahl.getText()); i++) {
JTextField spaltennamen_feld = new JTextField();
spaltennamen_feld.setBounds(10, 10+35*i, 150, 25);
spaltennamen_arraylist.add(spaltennamen_feld);

JComboBox<String> datentypen_box = new JComboBox<String>(types);
datentypen_box.setBounds(170, 10+35*i, 150, 25);
datentypen_arraylist.add(datentypen_box);

JComboBox<String> datenzusatz_box = new JComboBox<String>(comb);
datenzusatz_box.setBounds(330, 10+35*i, 100, 25);
datenzusatz_arraylist.add(datenzusatz_box);

jpane.add(spaltennamen_feld);
jpane.add(datentypen_box);
jpane.add(datenzusatz_box);
}

问题:我无法添加 GUI 的屏幕截图,导致缺少 ehr...我在这里忘记了所需内容的名称 ^_^但真正的问题是:溢出的内容不会显示在我的 JPanel 上,并且我的 ScrollPane 不会滚动。有什么想法吗?

非常感谢:)

最佳答案

您的解决方案不是以上任何一种。我认为您想使用 JTable,其中一个包含三列,最后两列的编辑器是 JComboBox。

<小时/>

编辑
例如:

import java.util.Random;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class Foo2 {

private static void createAndShowGui() {
String[] columns = {"Spaltennamen", " Datentypen", "Datenzusatz"};
String[] dataStrings1 = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
String[] dataStrings2 = {"One", "Two", "Three", "Four", "Five"};
Random random = new Random();

DefaultTableModel model = new DefaultTableModel(columns, 0);
int spaltenzahl = 10; // this can change
for (int i = 0; i < spaltenzahl; i++) {
Vector<String> rowData = new Vector<>();
rowData.add("Row Number " + (i + 1));
rowData.add(dataStrings1[random.nextInt(dataStrings1.length)]);
rowData.add(dataStrings2[random.nextInt(dataStrings2.length)]);
model.addRow(rowData);
}

JTable table = new JTable(model);
table.getColumn(columns[1]).setCellEditor(new DefaultCellEditor(new JComboBox<>(dataStrings1)));
table.getColumn(columns[2]).setCellEditor(new DefaultCellEditor(new JComboBox<>(dataStrings2)));
JScrollPane scrollPane = new JScrollPane(table);


JFrame frame = new JFrame("Foo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(scrollPane);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

关于java - 具有空布局的动态填充 JPanel 上的 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149959/

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