Note that there are some explanatory texts on larger screens.

plurals
  1. POJava Panel font changing radio buttons question
    text
    copied!<p>I am having trouble with this assignment because my of my actionlisteners. Right now the panel has 2 checkboxes to change the font into bold and or italic. I want to add 4 radio buttons that can change what font the "saying" is in. Can anyone tell me what I'm doing wrong with my actionlisteners? Thank you!</p> <pre><code>import javax.swing.*; import java.awt.*; import java.awt.event.*; public class StyleOptionsPanel extends JPanel implements ActionListener, ItemListener { private JLabel saying; private JCheckBox bold, italic; // have a button for style1, button for style2, button for style3 private JRadioButton style1, style2, style3, style4; //creates the buttons for each of the 4 styles { bold = new JCheckBox ("Bold", true); italic = new JCheckBox ("Italic", true); style1 = new JRadioButton ("Arial", true); style2 = new JRadioButton ("Times New Roman", false); style3 = new JRadioButton ("Verdana", false); style4 = new JRadioButton ("Thonburi", false); //also check out quote options panel file for example of radio buttons. //after creating your radio buttons, you have to create a button group. copy line exactly from quote options panel //comedy = new JRadioButton ("Comedy", true); - example of assigning radio button //comedy.setBackground (Color.green); ButtonGroup group = new ButtonGroup(); //use this code for the homework group.add (style1); group.add (style2); group.add (style3); group.add (style4); style1.addActionListener (this); style2.addActionListener (this); style3.addActionListener (this); style4.addActionListener (this); add (style1); add (style2); add (style3); add (style4); } //----------------------------------------------------------------- // Sets up a panel with a label and some check boxes that // control the style of the label's font. //----------------------------------------------------------------- public StyleOptionsPanel() { saying = new JLabel ("Say it with style!"); saying.setFont (new Font ("Helvetica", Font.PLAIN, 36)); // we'll need this later bold = new JCheckBox ("Bold"); // what is in quotes doesn't have to match variable being created but it should be descriptive bold.setBackground (Color.green); // you can also set the background color of the checkbox italic = new JCheckBox ("Italic"); italic.setBackground (Color.green); // this doesn't seem to change anything for me? //StyleListener listener = new StyleListener(); //whenever you create a textbox, you have to add a listener for it //bold.addActionListener (listener); //italic.addActionListener (listener); add (saying); //it matters what order these go in, it affects the way that your program looks add (bold); add (italic); add (style1); add (style2); add (style3); add (style4); setBackground (Color.cyan); setPreferredSize (new Dimension(300, 100)); } //***************************************************************** // Represents the listener for both check boxes and the radio boxes. //***************************************************************** private class StyleListener implements ActionListener, ItemListener { //-------------------------------------------------------------- // Updates the style of the label font style. //-------------------------------------------------------------- public void itemStateChanged(ItemEvent e) { int style = Font.PLAIN; if (bold.isSelected()) //this is a boolean statement, on the inside you will always expect some kind of boolean statement style = Font.BOLD; if (italic.isSelected()) style += Font.ITALIC; // style += means that it takes whatever style the font already is and then adds the value Italic to it //public void actionPerformed (ActionEvent event) //also use this code in homework Object source = e.getSource();// TODO Auto-generated method stub } public void actionPerformed(ActionEvent e) // this is our bread and butter, it is basically what we will be changing { if (source == style1) //if (source == style1) saying.setText (Arial); //quote.setText(Helvetica) else (source == style2) saying.setText (TimesNewRoman); else (source == style3) saying.setText (Verdana); else (source == style4) saying.setText(Thonburi); } } @Override public void itemStateChanged(ItemEvent e) { // TODO Auto-generated method stub } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub } </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload