/ / JScrollPane w Eclipse za pomocą palety - eclipse, swing, jframe, jscrollpane, jscrollbar

JScrollPane w Eclipse za pomocą palety - eclipse, swing, jframe, jscrollpane, jscrollbar

Próbuję przewijać JFrame za pomocąPaleta. W Netbeans, jeśli utworzę panel o wymiarach (300, 500) i ScrollPane o wymiarach (200,200), to jeśli przeciągnę i upuszczę panel do ScrollPane, automatycznie utworzy on paski.

W Zaćmieniu spróbowałem tego samego i nie mogę tego zrobić. Ponadto ostateczny kod w zaćmieniu po próbie jest następujący:

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JScrollPane;


public class InsertWaterRawData extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
InsertWaterRawData frame = new InsertWaterRawData();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public InsertWaterRawData() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 577, 383);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(236, 87, 200, 200);
contentPane.add(scrollPane);

JPanel panel = new JPanel();
scrollPane.setViewportView(panel);
panel.setLayout(null);
}

}

Czy jest jakiś sposób, aby zrobić to z paletą?

Z góry dziękuję

Odpowiedzi:

1 dla odpowiedzi № 1

panel.setLayout (null);

Nie używaj pustego układu !!!

Paski przewijania pojawią się automatycznie, gdy preferowany rozmiar panelu będzie większy niż rozmiar przewijania.

Gdy używasz menedżera układu, preferowany rozmiar panelu zostanie obliczony automatycznie podczas dodawania komponentów do panelu.

Jeśli robisz niestandardowe malowanie na swoim panelu, musisz nadpisać getPreferredSize() metoda twojego panelu, aby zwrócić odpowiedni rozmiar.

W oparciu o opublikowany kod nie ma potrzeby przewijania, ponieważ do panelu nie dodano żadnych komponentów.