呵呵,这个不解释,给代码吧,用swing控件就行,不要和awt件混用
import javaawtButton;import javaawtColor;
import javaawtFont;
import javaxswingJFrame;
import javaxswingJMenu;
import javaxswingJMenuBar;
import javaxswingJMenuItem;
public class Main
{
public Main()
{
JFrame frame=new JFrame("新建窗体");
framesetSize(300,200);
JMenuBar mb=new JMenuBar();
Font font=new Font("微软雅黑",FontBOLD,24);
Button button=new Button("颜色");
buttonsetFont(font);
JMenu me=new JMenu("颜色");
mesetFont(font);
JMenuItem x=new JMenuItem("红色");
xsetForeground(ColorRED);
JMenuItem y=new JMenuItem("橙色");
ysetForeground(ColorORANGE);
JMenuItem z=new JMenuItem("绿色");
zsetForeground(ColorBLUE);
framesetJMenuBar(mb);
mbadd(me);
meadd(x);
meadd(y);
meadd(z);
framesetVisible(true);
framesetDefaultCloseOperation(3);
}
public static void main(String args[])
{
new Main();
}
}documentform1shiNooptions[documentform1shiNolength] = new Option(subcat[i][1], subcat[i][2]);
这个添加一条列表,如我要添加一条为默认值呢,
不
知
道
。
在一个下拉列表框(我假设是JComboBox)上面加上ItemListener,来让另一个改变选择。
我试了一下,效果还行。
当然,Layout Manager我还是推荐MigLayout,强大。自带的BorderLayout还是粗糙了一点。
import javaawtBorderLayout;import javaawteventItemEvent;
import javaawteventItemListener;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingSwingUtilities;
import javaxswingUIManager;
import javaxswingUnsupportedLookAndFeelException;
import comsunjavaswingplafwindowsWindowsLookAndFeel;
public class CombineJComboBox extends JFrame {
//定义为域,让内部类可以直接使用
private JComboBox<String> comboAirports;
private JComboBox<String> comboCities;
public CombineJComboBox() {
begin();
}
private void begin() {
try {
UIManagersetLookAndFeel(new WindowsLookAndFeel());
} catch (UnsupportedLookAndFeelException e1) {
e1printStackTrace();
}
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
setLayout(new BorderLayout());
//第一个下拉列表:机场
comboAirports =
new JComboBox<String>(new String[]{"选个机场吧?", "双流机场", "通州机场", "虹桥机场", "首都国际机场", "浦东国际机场"});
comboAirportsaddItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
//如果是选中选项动作
if (egetStateChange() == ItemEventSELECTED) {
if (egetItem()toString()equals("虹桥机场") ||
egetItem()toString()equals("浦东国际机场")) {
comboCitiessetSelectedItem("上海");
} else if (egetItem()toString()equals("通州机场") ||
egetItem()toString()equals("首都国际机场")) {
comboCitiessetSelectedItem("北京");
} else if (egetItem()toString()equals("双流机场")) {
comboCitiessetSelectedItem("成都");//我还没有去过成都,不知道为什么想到机场就想到了这个名字。
} else {
comboCitiessetSelectedIndex(0); //选中第一个选项。
}
} else if (egetStateChange() == ItemEventDESELECTED){
//不要做任何事。选中一个选项必定导致前面一个选项不被选中。一次选择实际上产生了两个event
}
}
});
comboAirportssetSelectedIndex(0); //初始选择第一个选项
comboAirportssetBounds(0, 0, 150, 30);
add(comboAirports, BorderLayoutWEST);
//第二个下拉列表:城市
comboCities = new JComboBox<String>(new String[]{"你想要去哪个城市呢?", "北京", "上海", "成都"});
comboCitiessetSelectedIndex(0); //初始选择第一个选项
comboCitiessetBounds(0, 0, 150, 30);
add(comboCities, BorderLayoutEAST);
pack();//计算所有component尺寸,妥善安排好,然后压缩到最合适尺寸。
setBounds(0, 0, 300, 100); //重新设置窗口尺寸
setLocationRelativeTo(null); //窗口居中
setVisible(true);
}
public static void main(String[] args) {
SwingUtilitiesinvokeLater(new Runnable() {
@Override
public void run() {
CombineJComboBox frame = new CombineJComboBox();
}
});
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)