這裏是我的問題: 我創建一個窗口,負責在ImageIcon
作爲的形式上市層,在此它顯示層的 當前圖像(現在),圖層名稱和複選框來更改所述圖層的當前開啓/關閉狀態。整個事情應該是的Paint.NET's Layer Window敲落,如下所示:搖擺:JList的持有多個組件作爲單個項目
我的問題是,如何繞過JTable
構建它如此。我想到最後,我可能不得不求助於製作一個動態表格,但我想知道是否有辦法制作可單獨顯示這三個組件的項目/容器。
我得到的最接近的是使用JLabel
及其使用的圖標和文本屬性,但我無法確定如何添加複選框。
我應該使用佈局管理器將標籤列表移動到左側,並在窗格中添加一個填充了複選框的新列表嗎?
我的代碼大概如下:
public class StudioLayerWindow extends JFrame
{
// Objects
JPanel buttonPanel;
JScrollPane layerScroll;
JButton addNewLayer;
JButton deleteCurrentLayer;
JButton duplicateCurrentLayer;
JButton mergeCurrentLayer;
JButton moveCurrentLayerUp;
JButton moveCurrentLayerDown;
JButton layerProperties;
// Constructors & Initializers
public StudioLayerWindow()
{
// Main Window Initialization
this.setTitle("Layers");
this.setType(Type.UTILITY);
this.setSize(200,200);
this.setResizable(false);
this.setAlwaysOnTop(true);
initButtons();
buttonPanel = new JPanel(new GridLayout(1,7));
buttonPanel.setPreferredSize(new Dimension(this.getWidth(), this.getHeight()/ 7));
buttonPanel.add(addNewLayer);
buttonPanel.add(deleteCurrentLayer);
buttonPanel.add(duplicateCurrentLayer);
buttonPanel.add(mergeCurrentLayer);
buttonPanel.add(moveCurrentLayerUp);
buttonPanel.add(moveCurrentLayerDown);
buttonPanel.add(layerProperties);
// Code for what I'd add here
layerScroll = new JScrollPane();
this.add(layerScroll , BorderLayout.CENTER);
this.add(buttonPanel , BorderLayout.PAGE_END);
}
上面的代碼不包含任何嘗試我的解決方案,只有基本的模板,我一直在。
有什麼辦法可以在單一行上製作多個組件嗎?
*「我的問題是如何繞過JTable來構造它。」*爲什麼'繞過'?標準的(3列)'JTable'抑制垂直和水平線可以做到這一點。 –