これは、プログラムが実行されているクラスです。JScrollPaneが機能しない、ビューポートがパネルをスタッキングしている
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class runClass {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(1366, 768);
frame.setVisible(true);
JPanel backgroundPanel = new JPanel();
backgroundPanel.setBounds(0, 0, 1366, 768);
backgroundPanel.setBackground(Color.PINK);
frame.getContentPane().add(backgroundPanel);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(0,1,10,10));
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(228, 5, 453, 426);
scrollPane.setViewportView(panel);
scrollPane.setVisible(true);
backgroundPanel.setLayout(null);
backgroundPanel.add(scrollPane);
for (int x = 0; x < 15; x++){
panel.add(new ExerciseList(new Exercise("hello")));
}
panel.revalidate();
panel.repaint();
}
}
これは、コンテナに追加されるパネルです。
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.Font;
public class ExerciseList extends JPanel{
private Exercise exercise;
public ExerciseList(Exercise e){
this.exercise = e;
setLayout(null);
setVisible(true);
setBackground(Color.LIGHT_GRAY);
JLabel lblName = new JLabel(exercise.getName());
lblName.setFont(new Font("Tahoma", Font.PLAIN, 18));
lblName.setBounds(229, 11, 209, 22);
add(lblName);
}
}
これはExerciseListの情報を取得するために使用されるエクササイズクラスです。
public class Exercise {
private String name;
public Exercise(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
これは私が取得しているエクササイズリストのイメージです。
すべてのヘルプは歓迎です!ありがとう
問題を示している[MCVE]有効を投稿してください。おそらく[Layout manager](https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)と 'setBounds() 'の組み合わせに関係しています。しかし、GUIの場合は、['JTable'](https://docs.oracle.com/javase/7/docs/api/javax/swing/JTable.html)を試してみてください。 – Frakcool
ありがとうございます!私はこのGUIレイアウトにとどまることを好みます。では、問題はレイアウトマネージャとsetbounds()の両方にありますか? –
問題は、それをすることはできないし、そうすべきではないということです。レイアウトやコンポーネントの好みのサイズを自分の実際のサイズに設定してください。さもなければ、あなたが見ているように面白い方法でGUIが表示されます。 –