Итак, я хочу выполнить отправку данных графического интерфейса в конструктор для установки новых экземпляров.Но я не очень уверен, как это сделать.Я, честно говоря, даже не знаю, разрешено или нет то, что я делаю, но, боже, было бы легко, если бы это просто сработало.
У меня настроен графический интерфейс, как вы можете видеть.Затем, когда пользователь нажимает на дисплей, я хочу, чтобы программа собирала данные.Затем отправьте его конструктору.
Теперь это школьный проект, поэтому я не могу попросить полный ответ (код), но, надеюсь, кто-нибудь поможет мне лучше понять, что я делаю неправильно,Я получаю сообщение об ошибке: неверный тип возврата - но я знаю, что возвращаемые типы совпадают ... oo;
Я предоставлю любую другую необходимую вам информацию.Если я смогу немного улучшить этот код, чтобы упростить компиляцию, как будто я делаю весь конструктор неправильно, позвольте мне знать.В любом случае, мне хотелось бы иметь более привычные привычки при кодировании.
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 <= 20 && length >= 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);
}
}}
Итак, просто чтобы быть конкретным и убедиться ... Вот код с ошибкой:
//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
}
иЯ хочу передать его:
public Project2(String newSid, double newLength, boolean newWidths, String newService){
setSid(newSid);
setLength(newLength);
isWidths(newWidths);
setService(newService);
}