Note that there are some explanatory texts on larger screens.

plurals
  1. POBeginning Java : passing to a constructor thru event listener
    primarykey
    data
    text
    <p>So, what I want to accomplish is sending the GUI Data over to the constructor to set some new instances. But I'm not really too sure on how to accomplish this. I honestly don't even know if what I'm doing is allowed or not, but man it'd be easy if it just worked this way. </p> <p>I have a GUI set up as you can see. Then when a user clicks on display, I want the program to collect the data. Then send it to the constructor.</p> <p>Now, this is a school project, so I can't really ask for a full answer (code), but hopefully someone can help me better understand what I'm doing wrong. The compiler error I get is -return type invalid- but I know that the return types match up... o-o;</p> <p>I'll provide any other info you need. If I can spruce this code up a bit to make it easier on the compiler, as if I'm doing the whole constructor thing wrong, lemme know. I'd like to have better habits while coding anyways.</p> <pre><code>import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Project2 extends JFrame { //Instance Variables private String sid; private double length; private boolean widths; private String service; //Declaring GUI Components private JTextField jtfSSID; private JTextField jtfLength; private JTextArea jtaToString; private JLabel jlblTitle; private JLabel jlblSSID; private JLabel jlblLength; private JLabel jlblToString; private JButton jbtDisplay; private JButton jbtClear; private JRadioButton jrbServiceStand; private JRadioButton jrbServiceSuper; private JRadioButton jrbServiceDelux; private ButtonGroup bgService; private JCheckBox jcbWStand; private JCheckBox jcbWExtra; private JPanel tpanel; private JPanel ipanel; private JPanel wpanel; private JPanel spanel; private JPanel opanel; private final int WIDTH = 500; private final int HEIGHT = 200; //main method for inst and cust frame public static void main(String[] args){ Project2 frame = new Project2(); } //Constructors + GUI constructs public Project2(){ setTitle("Project 2 : Bahia Mar Marina"); setSize(WIDTH, HEIGHT); setLocation(300, 200); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new BorderLayout()); buildTitle(); buildIdentity(); buildWidth(); buildService(); buildOutput(); add( tpanel, BorderLayout.NORTH ); add( ipanel, BorderLayout.WEST); add( wpanel, BorderLayout.CENTER ); add( spanel, BorderLayout.EAST); add( opanel, BorderLayout.SOUTH ); setVisible(true); } public Project2(String newSid, double newLength, boolean newWidths, String newService){ setSid(newSid); setLength(newLength); isWidths(newWidths); setService(newService); } //-----------------------------setters public void setSid(String newSid){ sid = newSid; } public void setLength(double newLength){ if (length &lt;= 20 &amp;&amp; length &gt;= 60 || length == 0) { length = newLength; } else { JOptionPane.showMessageDialog(null, "Invalid Length! Between 20 - 60 please! Or 0 as a placeholder."); } } public void isWidths(boolean newWidths){ widths = newWidths; } public void setService(String newService){ service = newService; } //-----------------------------------getters public String getSid(){ return sid; } public double getLength(){ return length; } public boolean getWidths(){ return widths; } public String getService(){ return service; } //---------------------------------------to string public String toString( ){ String output = "Slip ID: " + sid + " length of " + length + "ft. Wide: " + widths + ".\n-----Service Type: " + service; return output; } //build top title private void buildTitle(){ tpanel = new JPanel(); jlblTitle = new JLabel("Bahia Mar Marina"); tpanel.add(jlblTitle); } //build left ID private void buildIdentity(){ ipanel = new JPanel(); ipanel.setLayout(new GridLayout (2,1)); jlblSSID = new JLabel("SSID: "); jlblLength = new JLabel("Length: "); jtfSSID = new JTextField(4); jtfLength = new JTextField(4); ipanel.setBorder(BorderFactory.createTitledBorder("Identity:")); ipanel.add(jlblSSID); ipanel.add(jtfSSID); ipanel.add(jlblLength); ipanel.add(jtfLength); } //build center width private void buildWidth(){ wpanel = new JPanel(); wpanel.setLayout(new GridLayout (1,2)); jcbWStand = new JCheckBox("Standard"); jcbWExtra = new JCheckBox("Extra-wide"); wpanel.setBorder(BorderFactory.createTitledBorder("Width:")); wpanel.add(jcbWStand); wpanel.add(jcbWExtra); } //build left service private void buildService(){ spanel = new JPanel(); spanel.setLayout(new GridLayout (3,1)); jrbServiceStand = new JRadioButton("Standard"); jrbServiceSuper = new JRadioButton("Superior"); jrbServiceDelux = new JRadioButton("Deluxe"); bgService = new ButtonGroup(); bgService.add(jrbServiceStand); bgService.add(jrbServiceSuper); bgService.add(jrbServiceDelux); spanel.setBorder(BorderFactory.createTitledBorder("Service:")); spanel.add(jrbServiceStand); spanel.add(jrbServiceSuper); spanel.add(jrbServiceDelux); } //build bottom output and buttons private void buildOutput(){ opanel = new JPanel(); opanel.setLayout(new GridLayout (2,1)); jlblToString = new JLabel("Data Output:"); jtaToString = new JTextArea(2,16); jbtDisplay = new JButton("Display!"); jbtDisplay.addActionListener(new DisplayButtonListener()); jbtClear = new JButton("-Clear-"); jbtClear.addActionListener(new ClearButtonListener()); opanel.add(jbtDisplay); opanel.add(jbtClear); opanel.add(jlblToString); opanel.add(jtaToString); } //Display Listener private class DisplayButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ sid = jtfSSID.getText(); length = Double.parseDouble(jtfLength.getText()); //service if(jrbServiceStand.isSelected()){ service = "Standard";} else if(jrbServiceSuper.isSelected()){ service = "Superior";} else if(jrbServiceDelux.isSelected()){ service = "Deluxe";} //widths if(jcbWStand.isSelected()){ widths = false; } if(jcbWExtra.isSelected()){ widths = true; } Project2(sid, length, widths, service); } } //Clear Listener private class ClearButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ jtfSSID.setText(" "); bgService.clearSelection(); jtfLength.setText(" "); jcbWStand.setSelected(false); jcbWExtra.setSelected(false); } }} </code></pre> <p>So, just to be specific and make sure... Here's the code with the error:</p> <pre><code>//Display Listener private class DisplayButtonListener implements ActionListener{ public void actionPerformed(ActionEvent e){ sid = jtfSSID.getText(); length = Double.parseDouble(jtfLength.getText()); //service if(jrbServiceStand.isSelected()){ service = "Standard";} else if(jrbServiceSuper.isSelected()){ service = "Superior";} else if(jrbServiceDelux.isSelected()){ service = "Deluxe";} //widths if(jcbWStand.isSelected()){ widths = false; } if(jcbWExtra.isSelected()){ widths = true; } Project2(sid, length, widths, service); //THIS LINE HAS THE ERROR } </code></pre> <p>and I want to pass it to:</p> <pre><code>public Project2(String newSid, double newLength, boolean newWidths, String newService){ setSid(newSid); setLength(newLength); isWidths(newWidths); setService(newService); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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