2016-05-01 35 views
-2

我有一個JFrame,JPanel和一個JButton,按鈕位於coords(100,1000)的面板中,面板(具有絕對佈局)位於框架中,框架有尺寸(500,500)。我想要的是能夠滾動窗口,以達到窗口底部的按鈕。這裏是代碼:Java - Swing - 組件滿滿的窗口

public static void main(String...args) 
{ 
    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 
    JButton button = new JButton("Test"); 

    frame.setSize(500, 500); 
    frame.getContentPane().add(panel); 

    panel.setLayout(null); 

    button.setBounds(100, 1000, 100, 30); 
    panel.add(button); 
} 

我該怎麼做才能夠滾動窗口到達按鈕?你能用這個按鈕寫一個簡單的代碼嗎?

+0

Java GUI必須使用不同語言環境中使用不同PLAF的不同OS,屏幕大小,屏幕分辨率等。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –

+0

*「你能寫一個簡單的代碼嗎」*我當然可以。但是,SO不是您的個人代碼生成服務。 –

回答

1

您可以簡單地爲它使用JScrollPane。 P.S:我不知道爲什麼你的按鈕的Y位置,即使你的幀大小500

JScrollPane jYourScrollPane = new JScrollPane(panel); 
frame.add(jYourScrollPane); 

編輯設置1000:setLayout的(空);使您的面板佈局絕對。檢查這些答案answer1answer2

+0

它不起作用,它出現一個沒有scrollPane的窗口JFrame wnd = new JFrame(); JPanel面板=新JPanel(); JButton button = new JButton(「Test」); JScrollPane scroll = new JScrollPane(panel); button.setBounds(100,1000,70,30); panel.setLayout(null); panel.add(button); wnd.setSize(600,500); wnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); wnd.add(scroll); wnd.setVisible(true); –

+0

編輯我的答案給你@TommasoSalvetti – ziLk

0
this.revalidate(); //for swing. 

應該更新你的框架,讓你的按鈕和這樣的展示。

+0

隨着Swing的使用方法是revalidate()!!! – camickr