0
我想要一個沒有jscrollpane佈局管理器(它也沒有佈局管理器)的固定大小的jpanel。我不能使用任何佈局管理器,因爲我需要在一個位置,其中用戶點擊(並允許拖&下降爲所有創建emelents)來創建一個矩形/圓Java swing,滾動條不能使用絕對佈局
setLocationRelativeTo(null);
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setName("dnd test");
int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane scroll = new JScrollPane(panel,v,h);
scroll.setLayout(null);
scroll.setPreferredSize(new Dimension(1000, 1000));
scroll.setBounds(0, 0, 1000, 1000);
panel = buildComponentOnAbsoluteLayout(new JPanel(),scroll,0,0,500,500);
panel.setBackground(Color.darkGray);
panel.setSize(350,350);
panel.setLayout(null);
buildComponentOnAbsoluteLayout(new JButton("button 1"),panel,10,10,120,30);
buildComponentOnAbsoluteLayout(new JButton("button 1"),panel,50,50,120,30);
add(scroll);
setVisible(true);
public static <T extends JComponent> T buildComponentOnAbsoluteLayout(T t,Container holder,int x, int y,int width, int heigth){
t.setBounds(x,y,width,heigth);
holder.add(t);
return t;
}
滾動條將永遠不會彈出。
Java GUI必須在不同的操作系統',屏幕大小,屏幕分辨率等工作。因此,他們不利於像素完美的佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 – 2014-10-20 11:22:40
我不能使用佈局管理器。即時通訊編程嘗試編寫一個非常類似於圖形化uml/er建模器的工具,基本上用戶可以在工作空間(jpanel)上創建對象,將對象連接到其他人等... – hnnn 2014-10-20 14:19:59
這不是問題。實現拖放操作並將組件動態添加到要使用的任何佈局管理器。對於空佈局,它可能會*不*工作。繪製形狀使用與佈局無關的圖形對象。 – user1803551 2014-10-20 17:35:45