-1
我有一個顯示按鈕列表的組合框的問題。我現在已經是
http://hizliresim.com/djQzr7Comboboxes顯示按鈕列表
不過,我想更多的東西像這樣 http://hizliresim.com/QXDE3G
第一個按鈕是組合框,第二個是組合框單擊時。
下面是代碼
package asd;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.JComboBox;
public class asd extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
asd frame = new asd();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public asd() {
try {
// Set System L&F
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (UnsupportedLookAndFeelException e) {
// handle exception
}
catch (ClassNotFoundException e) {
// handle exception
}
catch (InstantiationException e) {
// handle exception
}
catch (IllegalAccessException e) {
// handle exception
}
ComboBoxRender renderer;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JComboBox comboBox = new JComboBox();
comboBox.setBounds(92, 85, 60, 40);
renderer = new ComboBoxRender();
comboBox.setRenderer(renderer);
comboBox.addItem("1");
comboBox.addItem("2");
comboBox.addItem("3");
comboBox.setPreferredSize(new Dimension(60, 40));
comboBox.setMinimumSize(new Dimension(70, 30));
comboBox.setMaximumSize(new Dimension(500, 500));
comboBox.setBackground(Color.GRAY);
comboBox.setUI(new javax.swing.plaf.metal.MetalComboBoxUI(){
public void layoutComboBox(Container parent, MetalComboBoxLayoutManager manager) {
super.layoutComboBox(parent, manager);
arrowButton.setBounds(0,0,0,0);
}
});
contentPane.add(comboBox);
}
}
class ComboBoxRender implements ListCellRenderer<Object> {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index,boolean isSelected, boolean cellHasFocus) {
JButton btn = new JButton(value.toString());
btn.setSelected(false);
btn.setBorderPainted(true);
btn.setBackground(Color.gray);
btn.setSize(new Dimension(100, 100));
btn.setMargin(new Insets(1, 1, 1, 1));
btn.setMinimumSize(new Dimension(200,200));
return btn;
}
}
發表[MCVE](http://stackoverflow.com/help/mcve)尋求幫助。 – alex2410
'我有一個問題....'從代碼???,爲更好的幫助,儘快發佈一個SSCCE/MCVE,短的,可運行的,可編譯的 – mKorbel