對不起,如果這是一個愚蠢的問題,我是Java Swing UI的新手。 我想開發一個能夠抓取我的Steam成就的程序,而且我有這個基本代碼,但現在我想爲它創建一個UI。Java Swing JScrollPane包含更多窗格不滾動?
以下代碼是UiHandler類,還有很多其他的,但它們與此問題無關。這個類基本上只給出兩個對話框,詢問用戶和應用程序ID,然後給出一個滾動框,其中包含所有成就和值。相反,列表會熄滅屏幕,沒有任何滾動選項。
問題是我的scrollPanel(mainPanel內部)似乎沒有滾動(它沒有滾動條在側面,滾動輪什麼都不做)。我期望scrollPanel的內容(這是面板,具有存儲在地圖中的所有成就的列表)將滾動。
這是使用滾動面板我的第一次,所以我真的不知道我在做什麼....
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.WindowEvent;
import java.util.Iterator;
import java.util.Map;
import javax.swing.*;
@SuppressWarnings("serial")
public class UserInterface extends JFrame {
public UserInterface() {
initUI();
}
@SuppressWarnings("unchecked")
private void initUI() {
UserInteractionHandler uiHandler = new UserInteractionHandler();
setTitle("Steam Stats");
setSize(500, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
JPanel panel = new JPanel(new GridLayout(0, 1));
JLabel header = new JLabel("Steam Stats", SwingConstants.CENTER);
header.setFont(new Font("trebuchet ms", Font.BOLD, 20));
panel.add(header);
String userId = JOptionPane.showInputDialog("Steam ID 64");
String appId = JOptionPane.showInputDialog("App Id of Game");
Map<String, Integer> allAchievements = uiHandler.getAllAchievements(appId, userId);
@SuppressWarnings("rawtypes")
Iterator it = allAchievements.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> pair = (Map.Entry<String, Integer>) it.next();
JLabel key = new JLabel(pair.getKey());
JLabel value = new JLabel(pair.getValue().toString());
panel.add(key);
panel.add(value);
it.remove();
}
JScrollPane scrollPanel = new JScrollPane(panel);
JPanel mainPanel = new JPanel(new GridLayout(0, 1));
mainPanel.add(scrollPanel);
getContentPane().add(mainPanel, BorderLayout.NORTH);
}
public static void runUi() {
EventQueue.invokeLater(new Runnable() {
public void run() {
UserInterface ui = new UserInterface();
ui.setVisible(true);
}
});
}
}
下面是這將產生窗口截圖: http://puu.sh/jVsto/4a4bcbdf6e.png
感謝您的幫助。 墊
這出色的作品,謝謝! –