gpt4 book ai didi

java - jCheckbox 显示在文本区域中

转载 作者:行者123 更新时间:2023-12-01 15:17:23 26 4
gpt4 key购买 nike

我正在尝试 JCheckBox。我想要的是,当我选中其中任何一个(复选框)时,复选框中的文本应该显示在 jtextarea 中。

我现在拥有的是:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

@SuppressWarnings("serial")
public class CheckboxSample extends JFrame implements ActionListener{

//vars
JCheckBox cb1, cb2, cb3, cb4, cb5, cb6;
JTextArea ta;
String text = "";
JLabel lbl;

CheckboxSample(){

Container c = getContentPane();
c.setBackground(Color.BLACK);
c.setLayout( new FlowLayout() );

ta = new JTextArea( 10, 20 );

//create two check boxes
cb1 = new JCheckBox( "Java" );
cb2 = new JCheckBox( "C#" );
cb3 = new JCheckBox( "VB.Net" );
cb4 = new JCheckBox( "Python" );
cb5 = new JCheckBox( "C++" );
cb6 = new JCheckBox( "Objective-C" );

lbl = new JLabel( "Choose your favorite programming language/s: " );

//add the checkboxes, textarea to the container
lbl.setForeground(Color.white);
c.add( lbl );
c.add( cb1 );
c.add( cb2 );
c.add( cb3 );
c.add( cb4 );
c.add( cb5 );
c.add( cb6 );
c.add( ta );
ta.enable(false);

//add action listeners. We need not add listener to text area
//since the user clicks on the checkboxes or radio buttons only
cb1.addActionListener(this);
cb2.addActionListener(this);
cb3.addActionListener(this);
cb4.addActionListener(this);
cb5.addActionListener(this);
cb6.addActionListener(this);

//close the frame upon clicking
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}



@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//know which components are selected by user
if( cb1.getModel().isSelected() ) text+="\nJava";
if( cb2.getModel().isSelected() ) text+="\nC#";
if( cb3.getModel().isSelected() ) text+="\nVB.Net";
if( cb4.getModel().isSelected() ) text+="\nPython";
if( cb5.getModel().isSelected() ) text+="\nC++";
if( cb6.getModel().isSelected() ) text+="\nObjective-C";
//else text+="\nFemale";
//display the selected message in text area
ta.setText(text);

//reset the message to empty string
text="";
}


public static void main(String args[])
{
//create frame
CheckboxSample cr = new CheckboxSample();
cr.setTitle("My Samples");
cr.setSize(500,400);
cr.setVisible(true);
}

}

如何在不连接复选框文本的情况下做到这一点?谢谢。

最佳答案

所以,如果我没看错的话:

public void actionPerformed(ActionEvent e) {

if (e.getSource() instanceof JCheckBox) {

JCheckBox checkBox = (JCheckBox)e.getSource();
String text = checkBox.getText();

int pos = ta.getText().getLength()
ta.insert(text, pos);

// or, more simply

ta.append(text);


}

}

关于java - jCheckbox 显示在文本区域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com