java中如果把下拉菜单用鼠标选中的值添加到文本框里面?

java中如果把下拉菜单用鼠标选中的值添加到文本框里面?,第1张

需要的组件:

 下拉菜单 是    JComboBox组件

文本框   是   JTextField组件

设置下拉菜单的内容

常用的主要有三种方法

使用添加模型的方式,来添加内容

JComboBox jcb = new JComboBox()

jcb.setModel(new DefaultComboBoxModel<String>(new String[] {"一","二"}))

使用数组参数的构造器,来添加内容

String[] ss = {"选项一","选项二"}

JComboBox jcb = new JComboBox(ss)

 3.  使用链表参数的构造器,来添加内容

Vector<String> ve = new Vector<String>()

ve.add("选项一")ve.add("选项二")

JComboBox jcb = new JComboBox(ve) //把单链表作为参数,来构造一个下拉菜单

事件响应器的设置

当鼠标选择菜单的选项后, 会触发一个事件ActionEvent,  该事件的处理代码里, 可以实现把选择的值添加到文本框.

需要给JComboBox 添加 一个ActionListener  就能实现对事件的响应

效果图

参考代码如下 jdk 1.8

import java.awt.event.*

import java.util.*

import javax.swing.*

import java.awt.*

public class JCBDemo extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L

//组件的定义

private final JTextField jtf1

private final JTextField jtf2

private final JTextField jtf3

private final JComboBox<String> jcb2

private final JComboBox<String> jcb1

private final JComboBox<String> jcb3

public static void main(String[] args) {

new JCBDemo().setVisible(true)

}

public JCBDemo() {

setLayout(new GridLayout(3, 3, 0, 0))

//给JComboBox 添加数据的方式一 setModel的方法

JLabel jl1 = new JLabel("选择你喜欢的水果")

jcb1 = new JComboBox<String>()

jcb1.setModel(new DefaultComboBoxModel<String>(new String[] { "苹果", "鸭梨", "香蕉", "山楂", "蜜桃" }))

jtf1 = new JTextField()

jtf1.setColumns(10)

jtf1.setText((String) jcb1.getSelectedItem())//设置文本框的值

//给JComboBox 添加数据的方式二  使用带数组作为参数的构造方法

JLabel jl2 = new JLabel("选择你喜欢的电影")

String[] move = { "英雄本色", "神奇四侠", "复仇者联盟" }

jcb2 = new JComboBox<String>(move)

jcb2.addItem("星球大战")

jtf2 = new JTextField()

jtf2.setText((String) jcb2.getSelectedItem())

jtf2.setColumns(10)

//给JComboBox 添加数据的方式三  使用带Vector链表作为参数的构造方法

JLabel jl3 = new JLabel("选择你喜欢的书籍")

Vector<String> list = new Vector<String>()

list.add("货币战争")

list.add("格林童话")

jcb3 = new JComboBox<String>(list)

jtf3 = new JTextField()

jtf3.setColumns(10)

jtf3.setText((String) jcb3.getSelectedItem())

add(jl1)add(jcb1)add(jtf1)

add(jl2)add(jcb2)add(jtf2)

add(jl3)add(jcb3)add(jtf3)

jcb1.setActionCommand("1")//设置动作命令

jcb1.addActionListener(this)//设置事件响应器

jcb2.setActionCommand("2")

jcb2.addActionListener(this)

jcb3.setActionCommand("3")

jcb3.addActionListener(this)

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setSize(350, 139)//设置窗口大小

setLocationRelativeTo(null)//设置窗口居中

setTitle("下拉菜单示范")

}

public void actionPerformed(ActionEvent e) {//当鼠标选择下拉菜单的值时

String comd =e.getActionCommand()//得到动作命令

if(comd.equals("1")){

jtf1.setText((String) jcb1.getSelectedItem())//设置文本框的内容

}else if(comd.equals("2")){

jtf2.setText((String) jcb2.getSelectedItem())

}else if(comd.equals("3")){

jtf3.setText((String) jcb3.getSelectedItem())

}

}

}

import java.awt.*

import java.awt.event.*

import javax.swing.*

public class TextFrame extends JFrame {

JTextArea jta

JButton jb1, jb2

public TextFrame() {

jta = new JTextArea()

JScrollPane jsp = new JScrollPane(jta)//带有滚动条的组件

add(jsp)

JPanel jp = new JPanel()

jb1 = new JButton("自动换行")

jp.add(jb1)

jb2 = new JButton("不换行")

jp.add(jb2)

add(jp,BorderLayout.SOUTH)

setTitle("文本区示例")

setSize(300, 180)//大小

setLocationRelativeTo(null)//居中

setDefaultCloseOperation(EXIT_ON_CLOSE)//点击窗口关闭按钮,退出

jb1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jta.setLineWrap(true)//自动换行开启

}

})

jb2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jta.setLineWrap(false)//自动换行关闭

}

})

}

public static void main(String[] args) {

new TextFrame().setVisible(true)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11778006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存