Hier funktioniert meine Jscrollpane nicht. Ich habe den Scrollpanel hinzugefügt und listet beide auf Hauptjpanel auf. Die Jlist funktioniert, aber es scheint, JScrollpane funktioniert nicht in diesem Code.JScrollPane funktioniert nicht in meinem Code
meine Hauptklasse erweitert Jframe, also von der Hauptklasse ich passiere einfach das Hauptpanel und arbeite am selben Panel. und hier verwende ich absolute Layout.
public class ExternalsLinks extends JPanel {
///Links List
private JList mainList;
///List Custom Border
Border lineBorder = BorderFactory.createLineBorder(Color.BLACK, 5);
///Main Jpanel
private JPanel mainPanel;
///Scroll Pane for Lists
private JScrollPane mainListScrollPane;
/// Lebels
private JLabel lblExternalLinks;
///Buttons
private Button btnBackCredits = new Button("Back");
///Button Properties
private final int BUTTON_X = 220; private final int BUTTON_Y = 450;
private final int BUTTON_X_LENGTH = 350; private final int BUTTON_Y_LENGTH = 50;
///List Options
private String [] listMenu = {"Searching", "Sorting"};
///Constructors
public ExternalsLinks(JPanel mainPanel) {
this.mainPanel = mainPanel;
this.mainPanel.setLayout(null);
mainPanel.setBackground(Color.WHITE);
initialize_All();
}
/// Initialize method to initialize all components to JFrame
private void initialize_All() {
///Main Panel Components
lblExternalLinks = new JLabel("\"External Links\"");
lblExternalLinks.setBounds(290, 0, 400, 100);
lblExternalLinks.setFont(new Font("courier", Font.BOLD, 30));
mainPanel.add(lblExternalLinks);
mainList = new JList(listMenu);
mainList.setBackground(Color.CYAN);
mainList.setForeground(Color.BLACK);
mainList.setFont(new Font("Calibiri", Font.BOLD, 25));
mainList.setVisibleRowCount(2);
mainList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
mainList.setBorder(lineBorder);
mainList.setBounds(50, 80, 300, 350);
mainListScrollPane = new JScrollPane();
mainPanel.add(mainListScrollPane);
mainPanel.add(mainList);
///Buttons
btnBackCredits.setBounds(BUTTON_X, BUTTON_Y, BUTTON_X_LENGTH, BUTTON_Y_LENGTH);
mainPanel.add(btnBackCredits);
btnBackCredits.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
mainList.setVisible(false);
mainPanel.removeAll();
new MainMenu(mainPanel);
}
});
}
}
Welche LAYO ut wird einfach und gut zu bedienen sein? Ich muss auch die Listenpositionen auf einer bestimmten Position festlegen. –
@ MD.NASHIDKAMAL: Normalerweise verschachteln Sie JPanels jeweils mit einem eigenen Layout, wenn Sie eine komplexe GUI haben. Am einfachsten und am wenigsten leistungsfähig ist das FlowLayout. Ich empfehle auch, BorderLayout und GridLayout zu lernen. Nachdem Sie sich mit diesen vertraut gemacht haben, checken Sie BoxLayout und zuletzt GridBagLayout aus. –
Flow-Layout ordnen Sie die Komponenten einfach automatisch an: D ich bin damit gelangweilt. Ich kenne Border Layout, ich werde es verwenden. Danke :) –