Auswahl mehrerer JComboBoxen verknüpfne

R

RedVelvet

Mitglied
Moin!

Ich versuche eine GUI zu erstellen, die je nach Eingabe als Lösung einer von 3 Möglichkeiten ausgibt. Dazu müssen die Ergebnisse von mehreren JComboBoxen (4) und JTextFields verknüpft werden. Kann mir da jemand sagen wie ich das mache? Und zusätzlich möchte ich das ein Ergebniss erst erscheint wenn alles ausgewählt / eingegeben wurde.

Sorry bin hier ziemlicher Anfänger und weiß langsam nicht mehr nach was ich googlen soll

Java:
package de.jade.kursarbeit;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import de.jade.kursarbeit.ComboBoxListeners.ListObject;

import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class JFrame extends javax.swing.JFrame {

    private JPanel contentPane;
    private JTextField OwnPositionLatD;
    private JTextField POILatD;
    private JTextField OwnPositionLongD;
    private JTextField POILongD;
    private JTextField STimeIncident;
    private JTextField STime;

    private JTextPane txtPaneSAR;

    private String[] VesselsString = { "Number of Vessels involved", "1", "2", "3", "4", "5", "more than 5" };

    private String[] SO = { "Search Object", "Person in water", "4-Person liferaft", "6-Person liferaft",
            "15-Person liferaft", "25-Person liferaft", "Boat >5m", "Boat 7m", "Boat 12m", "Boat 24m" };

    private String[] WindSpeed = { "Wind", "Wind < 15kn", "Wind > 15kn" };

    private String[] Visi = { "Visibility", "3nm", "5nm", "10nm", "15nm", "20nm" };

    private String[] Lat = { "N", "S" };

    private String[] Long = { "E", "W" };
    private JTextField OwnPositionLatM;
    private JTextField POILatM;
    private JTextField OwnPositionLongM;
    private JTextField POILongM;
    int LatDOwn, LatMOwn, LatOwn, LongDOwn, LongMOwn, LongOwn, LatDPOI, LatMPOI, LatPOI, LongDPOI, LongMPOI, LongPOI,
            TimeInci, TimeNow;

    public JFrame() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 630, 477);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblOwnPosition = new JLabel("Own Position");
        lblOwnPosition.setBounds(30, 31, 102, 30);
        contentPane.add(lblOwnPosition);

        OwnPositionLatD = new JTextField();
        OwnPositionLatD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
                if (LatDOwn > 90) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");
                }
            }
        });
        OwnPositionLatD.setBounds(156, 35, 37, 22);
        contentPane.add(OwnPositionLatD);
        OwnPositionLatD.setColumns(10);

        OwnPositionLatM = new JTextField();
        OwnPositionLatM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
                if (LatMOwn > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatM.setText("");

                }
            }
        });

        OwnPositionLatM.setColumns(10);
        OwnPositionLatM.setBounds(235, 35, 37, 22);
        contentPane.add(OwnPositionLatM);

        JComboBox N_S = new JComboBox(Lat);
        N_S.setBounds(314, 35, 44, 22);
        contentPane.add(N_S);

        OwnPositionLongD = new JTextField();
        OwnPositionLongD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
                if (LongDOwn > 180) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        OwnPositionLongD.setBounds(384, 35, 37, 22);
        contentPane.add(OwnPositionLongD);
        OwnPositionLongD.setColumns(10);

        OwnPositionLongM = new JTextField();
        OwnPositionLongM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
                if (LongMOwn > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        OwnPositionLongM.setColumns(10);
        OwnPositionLongM.setBounds(467, 35, 37, 22);
        contentPane.add(OwnPositionLongM);

        JComboBox E_W = new JComboBox(Long);
        E_W.setBounds(547, 35, 44, 22);
        contentPane.add(E_W);

        
        JLabel lblPositionOfIncident = new JLabel("Position of Incident");
        lblPositionOfIncident.setBounds(30, 77, 135, 16);
        contentPane.add(lblPositionOfIncident);

        POILatD = new JTextField();
        POILatD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDPOI = Integer.parseInt(POILatD.getText());
                if (LatDPOI > 90) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");
                }
            }
        });
        POILatD.setBounds(156, 74, 37, 22);
        contentPane.add(POILatD);
        POILatD.setColumns(10);

        POILatM = new JTextField();
        POILatM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatMPOI = Integer.parseInt(POILatM.getText());
                if (LatMPOI > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILatM.setColumns(10);
        POILatM.setBounds(235, 74, 37, 22);
        contentPane.add(POILatM);

        JComboBox N_SPOI = new JComboBox(Lat);
        N_SPOI.setBounds(314, 74, 44, 22);
        contentPane.add(N_SPOI);

        POILongD = new JTextField();
        POILongD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongDPOI = Integer.parseInt(POILongD.getText());
                if (LongDPOI > 180) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILongD.setBounds(384, 74, 37, 22);
        contentPane.add(POILongD);
        POILongD.setColumns(10);

        POILongM = new JTextField();
        POILongM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongMPOI = Integer.parseInt(POILongM.getText());
                if (LongMPOI > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILongM.setColumns(10);
        POILongM.setBounds(467, 74, 37, 22);
        contentPane.add(POILongM);

            
        JComboBox E_WPOI = new JComboBox(Long);
        E_WPOI.setBounds(547, 74, 44, 22);
        contentPane.add(E_WPOI);

        JLabel lblShipTimeIncident = new JLabel("Time of Incident UTC");
        lblShipTimeIncident.setBounds(30, 127, 135, 16);
        contentPane.add(lblShipTimeIncident);

        STimeIncident = new JTextField();
        STimeIncident.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                TimeInci = Integer.parseInt(STimeIncident.getText());

            }
        });
        STimeIncident.setBounds(156, 124, 116, 22);
        contentPane.add(STimeIncident);
        STimeIncident.setColumns(10);

        JLabel lblShipTime = new JLabel("Time now UTC");
        lblShipTime.setBounds(326, 127, 85, 16);
        contentPane.add(lblShipTime);

        STime = new JTextField();
        STime.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                TimeNow = Integer.parseInt(STime.getText());
            }
        });
        STime.setBounds(423, 124, 116, 22);
        contentPane.add(STime);
        STime.setColumns(10);

        JComboBox Visibility = new JComboBox(Visi);
        Visibility.setBounds(427, 254, 135, 22);
        contentPane.add(Visibility);

        JComboBox SearchObject = new JComboBox(SO);
        SearchObject.setBounds(427, 184, 135, 22);
        contentPane.add(SearchObject);

        JComboBox Wind = new JComboBox(WindSpeed);
    /*    Wind.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                String selectedWind = (String) Wind.getSelectedItem();
                if (selectedWind.equals("Wind > 15kn")) {
                    txtPaneSAR.setText("Expanding Search Square");
                }
            }
        });*/
        Wind.setBounds(111, 184, 87, 22);
        contentPane.add(Wind);

        JComboBox Vessels = new JComboBox(VesselsString);
        Vessels.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent event) {

                String selectedItem = (String) Vessels.getSelectedItem();

                if (selectedItem.equals("2")) {
                    txtPaneSAR.setText("Parallel Track Pattern 2");
                } else if (selectedItem.equals("3")) {
                    txtPaneSAR.setText("Parallel Track Pattern 3");
                } else if (selectedItem.equals("4")) {
                    txtPaneSAR.setText("Parallel Track Pattern 4");
                } else if (selectedItem.equals("5")) {
                    txtPaneSAR.setText("Parallel Track Pattern 5");
                } else if (selectedItem.equals("more than 5")) {
                    txtPaneSAR.setText("Parallel Track Pattern 5");
                }
            }
        });

        Vessels.setBounds(69, 254, 184, 22);
        contentPane.add(Vessels);

        JLabel lblSearchPattern = new JLabel("Recommended Search Pattern");
        lblSearchPattern.setBounds(30, 343, 194, 16);
        contentPane.add(lblSearchPattern);

        txtPaneSAR = new JTextPane();
        txtPaneSAR.setBounds(271, 343, 223, 22);
        contentPane.add(txtPaneSAR);

        JLabel lblDegree1 = new JLabel("°");
        lblDegree1.setBounds(203, 38, 23, 16);
        contentPane.add(lblDegree1);

        JLabel lblDegree3 = new JLabel("°");
        lblDegree3.setBounds(205, 77, 23, 16);
        contentPane.add(lblDegree3);

        JLabel lblDegree2 = new JLabel("°");
        lblDegree2.setBounds(432, 38, 23, 16);
        contentPane.add(lblDegree2);

        JLabel lblDegree4 = new JLabel("°");
        lblDegree4.setBounds(432, 77, 23, 16);
        contentPane.add(lblDegree4);

        JLabel lblMinute2 = new JLabel("´");
        lblMinute2.setBounds(512, 38, 23, 16);
        contentPane.add(lblMinute2);

        JLabel lblMinute4 = new JLabel("´");
        lblMinute4.setBounds(512, 77, 23, 16);
        contentPane.add(lblMinute4);

        JLabel lblMinute1 = new JLabel("´");
        lblMinute1.setBounds(279, 38, 23, 16);
        contentPane.add(lblMinute1);

        JLabel lblMinute3 = new JLabel("´");
        lblMinute3.setBounds(279, 77, 23, 16);
        contentPane.add(lblMinute3);

        
        
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    JFrame frame = new JFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    
    
}
 
Hatsi09

Hatsi09

Aktives Mitglied
ich würde dir gerne helfen, weiß aber nicht genau was du machen willst. Du hast oben mehrere Textfelder, welche davon soll benutzt werden, und wie genau sollen die Ergebnisse verknüpft werden, hängen die von einander ab? Wäre gut wenn du das genau spezifizierst, dann helf ich dir gerne 😛
 
R

RedVelvet

Mitglied
Ok, also mit dem Textfeldern bin ich momentan am arbeiten. Da sollen am Ende 2 Werte rauskommen, Distanz in Seemeilen und Zeitunterschied. Diese Ergebnisse möchte ich nun mit den ausgewählten Items der JComboBoxen verknüpfen damit ich auf 1 Ergebniss komme. Z.B. wenn die Distanz und der Zeitunterschied klein ist (muss ich noch definieren) dazu wenig Wind herrscht, die Sicht gut ist, nur ein Fahrzeug dabei ist und es eine person im Wasser ist kommt genau 1 Ergebniss raus. Und dann natürlich bei anderen Kombinationen soll ein anderes Ergebniss rauskommen und im txtPaneSAR ausgegeben werden. Weiß aber nicht wie ich es alles so verknüpfe das ich die ausgewählten Items der JComboBox in ein (mehrere) if statements bekomme. Bin momentan auch schon soweit, dass ich für die "Recommended Search Pattern" (vor dem txtPaneSAR) ein Button eingefügt habe, damit beim auswählen des Buttons ein Ergebniss ausgegeben werden kann....
Dafür hier mein neuer Code (bin immer noch am arbeiten der Verarbeitung der Textfelder also nicht wundern)
package de.jade.kursarbeit;
Java:
import java.awt.EventQueue;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class JFrame extends javax.swing.JFrame {

	private JPanel contentPane;
	private JTextField OwnPositionLatD;
	private JTextField POILatD;
	private JTextField OwnPositionLongD;
	private JTextField POILongD;
	private JTextField STimeIncident;
	private JTextField STime;

	private JTextPane txtPaneSAR;

	private String[] VesselsString = { "Number of Vessels involved", "1", "2", "3", "4", "5", "more than 5" };

	private String[] SO = { "Search Object", "Person in water", "4-Person liferaft", "6-Person liferaft",
			"15-Person liferaft", "25-Person liferaft", "Boat < 5m", "Boat 7m", "Boat 12m", "Boat 24m" };

	private String[] WindSpeed = { "Wind speed", "0-15kn", "15-25kn", "Wind > 25kn" };
	private String[] Visi = { "Visibility", "3nm", "5nm", "10nm", "15nm", "20nm" };
	private String[] Lat = { "N", "S" };
	private String[] Long = { "E", "W" };	
	private String [] CurrentString = {"Current speed", "0-1kn", "1-2kn"};
	private String [] WindDirection = {"Wind Direction", "N", "NE", "E", "SE", "S", "SW", "W", "NW"};
	private String [] CurrentDirection = {"Current Direction", "N", "NE", "E", "SE", "S", "SW", "W", "NW"};

	private JTextField OwnPositionLatM;
	private JTextField POILatM;
	private JTextField OwnPositionLongM;
	private JTextField POILongM;
	int TimeInci, TimeNow;
	double LatDPOI, LatMPOI, LatPOI, LongDPOI, LongMPOI, LongPOI, LatDOwn, LatMOwn, LatOwn, LongDOwn, LongMOwn, LongOwn,
			LatMin, LongMin, PLatMin, PLongMin, PLatOwn, PLongOwn, a, b, l, Mittelbreite, d, a_quad, b_quad;

	public JFrame() {

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 630, 477);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblOwnPosition = new JLabel("Own Position");
		lblOwnPosition.setBounds(30, 31, 102, 30);
		contentPane.add(lblOwnPosition);

		OwnPositionLatD = new JTextField();
		OwnPositionLatD.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
				if (LatDOwn > 90) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");
				}
			}
		});
		OwnPositionLatD.setBounds(156, 35, 37, 22);
		contentPane.add(OwnPositionLatD);
		OwnPositionLatD.setColumns(10);

		OwnPositionLatM = new JTextField();
		OwnPositionLatM.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
				if (LatMOwn > 60) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatM.setText("");

				}
			}
		});

		OwnPositionLatM.setColumns(10);
		OwnPositionLatM.setBounds(235, 35, 37, 22);
		contentPane.add(OwnPositionLatM);

		JComboBox N_S = new JComboBox(Lat);
		N_S.setBounds(314, 35, 44, 22);
		contentPane.add(N_S);

		OwnPositionLongD = new JTextField();
		OwnPositionLongD.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
				if (LongDOwn > 180) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");

				}
			}
		});
		OwnPositionLongD.setBounds(384, 35, 37, 22);
		contentPane.add(OwnPositionLongD);
		OwnPositionLongD.setColumns(10);

		OwnPositionLongM = new JTextField();
		OwnPositionLongM.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
				if (LongMOwn > 60) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");

				}
			}
		});
		OwnPositionLongM.setColumns(10);
		OwnPositionLongM.setBounds(467, 35, 37, 22);
		contentPane.add(OwnPositionLongM);

		JComboBox E_W = new JComboBox(Long);
		E_W.setBounds(547, 35, 44, 22);
		contentPane.add(E_W);

		JLabel lblPositionOfIncident = new JLabel("Position of Incident");
		lblPositionOfIncident.setBounds(30, 77, 135, 16);
		contentPane.add(lblPositionOfIncident);

		POILatD = new JTextField();
		POILatD.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LatDPOI = Integer.parseInt(POILatD.getText());
				if (LatDPOI > 90) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");
				}
			}
		});
		POILatD.setBounds(156, 74, 37, 22);
		contentPane.add(POILatD);
		POILatD.setColumns(10);

		POILatM = new JTextField();
		POILatM.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LatMPOI = Integer.parseInt(POILatM.getText());
				if (LatMPOI > 60) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");

				}
			}
		});
		POILatM.setColumns(10);
		POILatM.setBounds(235, 74, 37, 22);
		contentPane.add(POILatM);

		JComboBox N_SPOI = new JComboBox(Lat);
		N_SPOI.setBounds(314, 74, 44, 22);
		contentPane.add(N_SPOI);

		POILongD = new JTextField();
		POILongD.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LongDPOI = Integer.parseInt(POILongD.getText());
				if (LongDPOI > 180) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");

				}
			}
		});
		POILongD.setBounds(384, 74, 37, 22);
		contentPane.add(POILongD);
		POILongD.setColumns(10);

		POILongM = new JTextField();
		POILongM.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LongMPOI = Integer.parseInt(POILongM.getText());
				if (LongMPOI > 60) {
					JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
							JOptionPane.INFORMATION_MESSAGE);

					OwnPositionLatD.setText("");

				}
			}
		});
		POILongM.setColumns(10);
		POILongM.setBounds(467, 74, 37, 22);
		contentPane.add(POILongM);

		JComboBox E_WPOI = new JComboBox(Long);
		E_WPOI.setBounds(547, 74, 44, 22);
		contentPane.add(E_WPOI);

		JLabel lblShipTimeIncident = new JLabel("Time of Incident UTC");
		lblShipTimeIncident.setBounds(30, 127, 135, 16);
		contentPane.add(lblShipTimeIncident);

		STimeIncident = new JTextField();
		STimeIncident.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TimeInci = Integer.parseInt(STimeIncident.getText());

			}
		});
		STimeIncident.setBounds(156, 124, 116, 22);
		contentPane.add(STimeIncident);
		STimeIncident.setColumns(10);

		JLabel lblShipTime = new JLabel("Time now UTC");
		lblShipTime.setBounds(326, 127, 85, 16);
		contentPane.add(lblShipTime);

		STime = new JTextField();
		STime.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				TimeNow = Integer.parseInt(STime.getText());
			}
		});
		STime.setBounds(423, 124, 116, 22);
		contentPane.add(STime);
		STime.setColumns(10);
			
		
		JComboBox WindD = new JComboBox(WindDirection);
		WindD.setBounds(156, 184, 116, 22);
		contentPane.add(WindD);
		
		JComboBox CurrentS = new JComboBox(CurrentString);
		CurrentS.setBounds(301, 184, 110, 22);
		contentPane.add(CurrentS);
		
		JComboBox CurrentD = new JComboBox(CurrentDirection);
		CurrentD.setBounds(444, 184, 135, 22);
		contentPane.add(CurrentD);
		
		JComboBox WindS = new JComboBox(WindSpeed);
		/*
		 * Wind.addActionListener(new ActionListener() { public void
		 * actionPerformed(ActionEvent e) {
		 * 
		 * String selectedWind = (String) Wind.getSelectedItem(); if
		 * (selectedWind.equals("Wind > 15kn")) {
		 * txtPaneSAR.setText("Expanding Search Square"); } } });
		 */
		WindS.setBounds(30, 184, 102, 22);
		contentPane.add(WindS);

		JComboBox Vessels = new JComboBox(VesselsString);
		Vessels.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent event) {

				String selectedItem = (String) Vessels.getSelectedItem();

				if (selectedItem.equals("2")) {
					txtPaneSAR.setText("Parallel Track Pattern 2");
				} else if (selectedItem.equals("3")) {
					txtPaneSAR.setText("Parallel Track Pattern 3");
				} else if (selectedItem.equals("4")) {
					txtPaneSAR.setText("Parallel Track Pattern 4");
				} else if (selectedItem.equals("5")) {
					txtPaneSAR.setText("Parallel Track Pattern 5");
				} else if (selectedItem.equals("more than 5")) {
					txtPaneSAR.setText("Parallel Track Pattern 5");
				}
			}
		});

		Vessels.setBounds(30, 254, 184, 22);
		contentPane.add(Vessels);
	
		JComboBox Visibility = new JComboBox(Visi);
		Visibility.setBounds(444, 254, 135, 22);
		contentPane.add(Visibility);

		JComboBox SearchObject = new JComboBox(SO);
		SearchObject.setBounds(260, 254, 135, 22);
		contentPane.add(SearchObject);
		
		txtPaneSAR = new JTextPane();
		txtPaneSAR.setBounds(271, 343, 223, 22);
		contentPane.add(txtPaneSAR);

		JLabel lblDegree1 = new JLabel("°");
		lblDegree1.setBounds(203, 38, 23, 16);
		contentPane.add(lblDegree1);

		JLabel lblDegree3 = new JLabel("°");
		lblDegree3.setBounds(205, 77, 23, 16);
		contentPane.add(lblDegree3);

		JLabel lblDegree2 = new JLabel("°");
		lblDegree2.setBounds(432, 38, 23, 16);
		contentPane.add(lblDegree2);

		JLabel lblDegree4 = new JLabel("°");
		lblDegree4.setBounds(432, 77, 23, 16);
		contentPane.add(lblDegree4);

		JLabel lblMinute2 = new JLabel("´");
		lblMinute2.setBounds(512, 38, 23, 16);
		contentPane.add(lblMinute2);

		JLabel lblMinute4 = new JLabel("´");
		lblMinute4.setBounds(512, 77, 23, 16);
		contentPane.add(lblMinute4);

		JLabel lblMinute1 = new JLabel("´");
		lblMinute1.setBounds(279, 38, 23, 16);
		contentPane.add(lblMinute1);

		JLabel lblMinute3 = new JLabel("´");
		lblMinute3.setBounds(279, 77, 23, 16);
		contentPane.add(lblMinute3);

		JButton btnNewButton = new JButton("Recommended Search Pattern");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
				LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
				LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
				LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
				LatMin = LatMOwn / 60;
				LongMin = LongMOwn / 60;

				LatOwn = LatDOwn + LatMin;
				LongOwn = LongDOwn + LongMin;
				
				LatDPOI = Integer.parseInt(POILatD.getText());
				LatMPOI = Integer.parseInt(POILatM.getText());
				LongDPOI = Integer.parseInt(POILongD.getText());
				LongMPOI = Integer.parseInt(POILongM.getText());
				PLatMin = LatMPOI /60;
				PLongMin = LongMPOI / 60;
				
				PLatOwn = LatDPOI + PLatMin;
				PLongOwn = LongDPOI + PLongMin;
				
				 b = (LatOwn - PLatOwn)*60;
				 l = (LongOwn - PLongOwn)*60;
				 
				 Mittelbreite = 1/2 * (LatOwn + PLatOwn);
				 a = l * Math.cos(Mittelbreite);
				
				 a_quad = Math.pow(a, 2);
				 b_quad = Math.pow(b,2);
				 
				 d = Math.sqrt(a_quad +b_quad);

				 // if ( d > ) {
				 //} 
				 
			}
			
		});
		btnNewButton.setBounds(24, 343, 229, 25);
		contentPane.add(btnNewButton);
		
		JTextPane textPaneDatum = new JTextPane();
		textPaneDatum.setBounds(271, 395, 223, 22);
		contentPane.add(textPaneDatum);
		
		JButton btnDatum = new JButton("Datum (for search area)");
		btnDatum.setBounds(24, 395, 229, 25);
		contentPane.add(btnDatum);
		
			

	}

	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					JFrame frame = new JFrame();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}
[code]
 
Hatsi09

Hatsi09

Aktives Mitglied
also es gibt 2 Möglichkeiten dies zu machen:
  • Du definierst eine Button, wenn der Benutzer alle Eingaben getätigt hat, dann drückt er auf den Button (hier definierst du die ActionPerformed des Buttons) und holst dir dort die Daten der ComboBoxen (getSelectedItem() oder getSelectedIndex()) und des Textfeldes (getText()). Um dann dein TxtPane den Text zu setzen nimmst du if-Abfragen (die Bedingungen kannst du ja mit || oder && verknüpfen), wo die Bedingungen überprüft werden. (Diese Variante würde ich dir empfehlen, ist weniger Schreibarbeit)
  • Wenn du keinen Button haben willst, dann musst du es umständlich machen. Du fügst jeder Combobox ein ItemChanged Event hinzu, das ausgelöst wird, wenn der Wert der Combobox verändert wird, bei dem Textfeld musst du eine KeyTyped oder Mouseclicked Event nehmen. Dann überprüfst du in jedem dieser Events, ob die Eingabe der anderen Elemente schon erfolgt ist und wenn dies der fall ist, dann wie beim ersten Punkt machst du die if-Abfragen und setzt so den Text des TxtPane.
Ich würde dir den Ersten Punkt empfehlen.
Hoffe ich konnte dir helfen, falls du eine Beispielcode haben willst, brauch ich genau die Werte der Comboboxen und welche Bedingungen erfüllt werden müssen. Für die Bedingung Zeitunterschied und Distanz gering musst du dir eine extra Hilfsmethode (Rückgabetyp boolean) schreiben, wo du definierst, für welche Werte der Combobox er klein ist und für welche Werte nicht. Diese kannst du dann bequem in dein if einbauen.
Wenn du die Methode getSeletedItem().toString() verwendest, bekommst du einen String raus, falls du aber es als zahl brauchst, dann muss du den String noch casten, z.B. mit Integer.valueof(String) oder Double.valueof(String).

Überprüfen, ob die distanz gering ist, könnte so aussehen:
Hilfsmethoden Distanz gering:
public boolean distanzGering()
{
    int item = Double.valueof(combobox.getSelectedItem().toString());
    if (item < 20)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Diese kannst du dann bequem in der oberen Methode aufrufen:

Beispiel:
public void txtPaneTextSetzen()
{
    if (distanzGering() && combobox1.getSeletedItem().toString().equals("1 Person") && anzahlFahrzeuge.getSeletedItem().toString().equals("1"))
    {
        txtPaneSAR.setText("Bedingung erfüllt");
    }
    else if (...)
}

und die Methode txtPaneTextSetzen() rufst du dann einfach in der ActionPerformed deines Buttons auf.
Dasselbe könntest du beim zweiten machen, müsstest aber hier in der Methode am Anfang noch überprüfen, ob alle Eingaben schon getätigt wurden
 
Zuletzt bearbeitet:
R

RedVelvet

Mitglied
Super vielen Dank, ich werde versuchen mich da heute ran zusetzen. Es klingt alles auf jeden Fall erstmal logisch und ich denke ich werde es über einen Button machen. Klingt sehr viel einfacher 😁
 
R

RedVelvet

Mitglied
Hey!

Also ich hab das jetzt mal mit einer einfachen Sache ausprobiert und beim ausführen wirft er mir aber ein Fehler raus, den ich nicht identifizieren kann. Vielleicht kannst du mir ja nochmal helfen...
Ich habe jetzt einen Teil den ich vorher als action performed unter der JComboBox hatte, im if-statement unter den Button verschoben (if statement war vorher genau das selbe). Wenn ich jetzt eine Option auf der JComboBox auswähle und auf den JButton drücke kommt halt die Fehlermeldung.

Code:
package de.jade.kursarbeit;

import java.awt.EventQueue;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JCheckBox;

public class JFrame extends javax.swing.JFrame {

    private JPanel contentPane;
    private JTextField OwnPositionLatD;
    private JTextField POILatD;
    private JTextField OwnPositionLongD;
    private JTextField POILongD;
    private JTextField STimeIncident;
    private JTextField STime;

    private JTextPane txtPaneSAR;

    private String[] VesselsString = { "Number of Vessels involved", "1", "2", "3", "4", "5", "more than 5" };

    private String[] SO = { "Search Object", "Person in water", "4-Person liferaft", "6-Person liferaft",
            "15-Person liferaft", "25-Person liferaft", "Boat < 5m", "Boat 7m", "Boat 12m", "Boat 24m" };

    private String[] WindSpeed = { "Wind speed", "0-15kn", "15-25kn", "Wind > 25kn" };
    private String[] Visi = { "Visibility", "3nm", "5nm", "10nm", "15nm", "20nm" };
    private String[] Lat = { "N", "S" };
    private String[] Long = { "E", "W" };
    private String[] CurrentString = { "Current speed", "0-1kn", "1-2kn" };
    private String[] WindDirection = { "Wind Direction", "N", "NE", "E", "SE", "S", "SW", "W", "NW" };
    private String[] CurrentDirection = { "Current Direction", "N", "NE", "E", "SE", "S", "SW", "W", "NW" };

    private JTextField OwnPositionLatM;
    private JTextField POILatM;
    private JTextField OwnPositionLongM;
    private JTextField POILongM;
    int TimeInci, TimeNow;
    double LatDPOI, LatMPOI, LatPOI, LongDPOI, LongMPOI, LongPOI, LatDOwn, LatMOwn, LatOwn, LongDOwn, LongMOwn, LongOwn,
            LatMin, LongMin, PLatMin, PLongMin, PLatOwn, PLongOwn, a, b, l, Mittelbreite, d, a_quad, b_quad, TimeDif,
            LatDatum, LongDatum;
    String PLat;

    public JFrame() {

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 630, 477);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel lblOwnPosition = new JLabel("Own Position");
        lblOwnPosition.setBounds(30, 31, 102, 30);
        contentPane.add(lblOwnPosition);

        OwnPositionLatD = new JTextField();
        OwnPositionLatD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
                if (LatDOwn > 90) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");
                }
            }
        });
        OwnPositionLatD.setBounds(156, 35, 37, 22);
        contentPane.add(OwnPositionLatD);
        OwnPositionLatD.setColumns(10);

        OwnPositionLatM = new JTextField();
        OwnPositionLatM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
                if (LatMOwn > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatM.setText("");

                }
            }
        });

        OwnPositionLatM.setColumns(10);
        OwnPositionLatM.setBounds(235, 35, 37, 22);
        contentPane.add(OwnPositionLatM);

        JComboBox N_S = new JComboBox(Lat);
        N_S.setBounds(314, 35, 44, 22);
        contentPane.add(N_S);

        OwnPositionLongD = new JTextField();
        OwnPositionLongD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
                if (LongDOwn > 180) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        OwnPositionLongD.setBounds(384, 35, 37, 22);
        contentPane.add(OwnPositionLongD);
        OwnPositionLongD.setColumns(10);

        OwnPositionLongM = new JTextField();
        OwnPositionLongM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
                if (LongMOwn > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        OwnPositionLongM.setColumns(10);
        OwnPositionLongM.setBounds(467, 35, 37, 22);
        contentPane.add(OwnPositionLongM);

        JComboBox E_W = new JComboBox(Long);
        E_W.setBounds(547, 35, 44, 22);
        contentPane.add(E_W);

        JLabel lblPositionOfIncident = new JLabel("Position of Incident");
        lblPositionOfIncident.setBounds(30, 77, 135, 16);
        contentPane.add(lblPositionOfIncident);

        POILatD = new JTextField();
        POILatD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDPOI = Integer.parseInt(POILatD.getText());
                if (LatDPOI > 90) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");
                }
            }
        });
        POILatD.setBounds(156, 74, 37, 22);
        contentPane.add(POILatD);
        POILatD.setColumns(10);

        POILatM = new JTextField();
        POILatM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatMPOI = Integer.parseInt(POILatM.getText());
                if (LatMPOI > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILatM.setColumns(10);
        POILatM.setBounds(235, 74, 37, 22);
        contentPane.add(POILatM);

        JComboBox N_SPOI = new JComboBox(Lat);
        N_SPOI.setBounds(314, 74, 44, 22);
        contentPane.add(N_SPOI);

        POILongD = new JTextField();
        POILongD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongDPOI = Integer.parseInt(POILongD.getText());
                if (LongDPOI > 180) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILongD.setBounds(384, 74, 37, 22);
        contentPane.add(POILongD);
        POILongD.setColumns(10);

        POILongM = new JTextField();
        POILongM.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LongMPOI = Integer.parseInt(POILongM.getText());
                if (LongMPOI > 60) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");

                }
            }
        });
        POILongM.setColumns(10);
        POILongM.setBounds(467, 74, 37, 22);
        contentPane.add(POILongM);

        JComboBox E_WPOI = new JComboBox(Long);
        E_WPOI.setBounds(547, 74, 44, 22);
        contentPane.add(E_WPOI);

        JLabel lblShipTimeIncident = new JLabel("Time of Incident UTC");
        lblShipTimeIncident.setBounds(30, 164, 135, 16);
        contentPane.add(lblShipTimeIncident);

        STimeIncident = new JTextField();
        STimeIncident.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                TimeInci = Integer.parseInt(STimeIncident.getText());

            }
        });
        STimeIncident.setBounds(156, 161, 116, 22);
        contentPane.add(STimeIncident);
        STimeIncident.setColumns(10);

        JLabel lblShipTime = new JLabel("Time now UTC");
        lblShipTime.setBounds(314, 164, 85, 16);
        contentPane.add(lblShipTime);

        STime = new JTextField();
        STime.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                TimeNow = Integer.parseInt(STime.getText());
            }
        });
        STime.setBounds(419, 161, 116, 22);
        contentPane.add(STime);
        STime.setColumns(10);

        JComboBox CurrentS = new JComboBox(CurrentString);
        CurrentS.setBounds(347, 202, 110, 22);
        contentPane.add(CurrentS);

        JComboBox WindS = new JComboBox(WindSpeed);
        WindS.setBounds(185, 202, 102, 22);
        contentPane.add(WindS);

        JComboBox Vessels = new JComboBox(VesselsString);
        Vessels.setBounds(30, 254, 184, 22);
        contentPane.add(Vessels);

        JComboBox Visibility = new JComboBox(Visi);
        Visibility.setBounds(444, 254, 135, 22);
        contentPane.add(Visibility);

        JComboBox SearchObject = new JComboBox(SO);
        SearchObject.setBounds(260, 254, 135, 22);
        contentPane.add(SearchObject);

        txtPaneSAR = new JTextPane();
        txtPaneSAR.setBounds(271, 343, 223, 22);
        contentPane.add(txtPaneSAR);

        JLabel lblDegree1 = new JLabel("°");
        lblDegree1.setBounds(203, 38, 23, 16);
        contentPane.add(lblDegree1);

        JLabel lblDegree3 = new JLabel("°");
        lblDegree3.setBounds(205, 77, 23, 16);
        contentPane.add(lblDegree3);

        JLabel lblDegree2 = new JLabel("°");
        lblDegree2.setBounds(432, 38, 23, 16);
        contentPane.add(lblDegree2);

        JLabel lblDegree4 = new JLabel("°");
        lblDegree4.setBounds(432, 77, 23, 16);
        contentPane.add(lblDegree4);

        JLabel lblMinute2 = new JLabel("´");
        lblMinute2.setBounds(512, 38, 23, 16);
        contentPane.add(lblMinute2);

        JLabel lblMinute4 = new JLabel("´");
        lblMinute4.setBounds(512, 77, 23, 16);
        contentPane.add(lblMinute4);

        JLabel lblMinute1 = new JLabel("´");
        lblMinute1.setBounds(279, 38, 23, 16);
        contentPane.add(lblMinute1);

        JLabel lblMinute3 = new JLabel("´");
        lblMinute3.setBounds(279, 77, 23, 16);
        contentPane.add(lblMinute3);

        JCheckBox chckbxPUnknown = new JCheckBox("Position of Incident unkown");
        chckbxPUnknown.setBounds(156, 111, 184, 25);
        contentPane.add(chckbxPUnknown);

        JCheckBox chckbxTUnknown = new JCheckBox("Time of Incident unknown");
        chckbxTUnknown.setBounds(384, 111, 184, 25);
        contentPane.add(chckbxTUnknown);

        JCheckBox chckbxMOB = new JCheckBox("MOB");
        chckbxMOB.setBounds(30, 111, 113, 25);
        contentPane.add(chckbxMOB);

        JButton btnRecommendation = new JButton("Recommended Search Pattern");
        btnRecommendation.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
                LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
                LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
                LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
                LatMin = LatMOwn / 60;
                LongMin = LongMOwn / 60;

                LatOwn = LatDOwn + LatMin;
                LongOwn = LongDOwn + LongMin;

                LatDPOI = Integer.parseInt(POILatD.getText());
                LatMPOI = Integer.parseInt(POILatM.getText());
                LongDPOI = Integer.parseInt(POILongD.getText());
                LongMPOI = Integer.parseInt(POILongM.getText());
                PLatMin = LatMPOI / 60;
                PLongMin = LongMPOI / 60;

                PLatOwn = LatDPOI + PLatMin;
                PLongOwn = LongDPOI + PLongMin;

                b = (LatOwn - PLatOwn) * 60;
                l = (LongOwn - PLongOwn) * 60;

                Mittelbreite = 1 / 2 * (LatOwn + PLatOwn);
                a = l * Math.cos(Mittelbreite);

                a_quad = Math.pow(a, 2);
                b_quad = Math.pow(b, 2);

                d = Math.sqrt(a_quad + b_quad);

                TimeNow = Integer.parseInt(STime.getText());
                TimeInci = Integer.parseInt(STimeIncident.getText());
                TimeDif = TimeNow - TimeInci;

                String selectedItem = (String) Vessels.getSelectedItem();

                if (selectedItem.equals("2")) {
                    txtPaneSAR.setText("Parallel Track Pattern 2");
                } else if (selectedItem.equals("3")) {
                    txtPaneSAR.setText("Parallel Track Pattern 3");
                } else if (selectedItem.equals("4")) {
                    txtPaneSAR.setText("Parallel Track Pattern 4");
                } else if (selectedItem.equals("5")) {
                    txtPaneSAR.setText("Parallel Track Pattern 5");
                } else if (selectedItem.equals("more than 5")) {
                    txtPaneSAR.setText("Parallel Track Pattern 5");
                }

            }

        });
        btnRecommendation.setBounds(24, 343, 229, 25);
        contentPane.add(btnRecommendation);

    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    JFrame frame = new JFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}
 
Hatsi09

Hatsi09

Aktives Mitglied
es wäre einfacher dir zu helfen, wenn du nicht immer deinen kompletten Code posten würdest, sondern nur die Bereiche, die du geändert hast oder die wichtig sind. Dann ist es schön wenn du sagst, du kriegst eine Fehlermeldung, aber ohne die genaue Fehlermeldung kann ich dir leider gar nicht weiterhelfen :(. Also wäre gut, wenn du die genaue Fehlermeldung und den dazugehörigen Code (bzw. die Bereiche, die du geändert hast, also den die ActionPerformed vom Button und die Combobox) posten könntest, sodass ich nicht deinen kompletten Code lesen muss;)
 
R

RedVelvet

Mitglied
Ok sorry verständlich....
Habe aber auch gerade festgestellt das der Teil mit dem if-statement funktioniert nur der andere Teil unter dem JButton zur Berechnung von Distanz und Zeitdifferenz nicht :(
Vielleicht könntest du mir sagen wo da der Fehler liegt??? Hier der Codeteil der Probleme macht.
Der obere Teil is falls nicht bekannt eine Distanzberechnung nach Mittelbreite für die Navigation auf Schiffen...

Code:
JButton btnRecommendation = new JButton("Recommended Search Pattern");
        btnRecommendation.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDOwn = Integer.parseInt(OwnPositionLatD.getText());
                LatMOwn = Integer.parseInt(OwnPositionLatM.getText());
                LongDOwn = Integer.parseInt(OwnPositionLongD.getText());
                LongMOwn = Integer.parseInt(OwnPositionLongM.getText());
                LatMin = LatMOwn / 60;
                LongMin = LongMOwn / 60;

                LatOwn = LatDOwn + LatMin;
                LongOwn = LongDOwn + LongMin;

                LatDPOI = Integer.parseInt(POILatD.getText());
                LatMPOI = Integer.parseInt(POILatM.getText());
                LongDPOI = Integer.parseInt(POILongD.getText());
                LongMPOI = Integer.parseInt(POILongM.getText());
                PLatMin = LatMPOI / 60;
                PLongMin = LongMPOI / 60;

                PLatOwn = LatDPOI + PLatMin;
                PLongOwn = LongDPOI + PLongMin;

                b = (LatOwn - PLatOwn) * 60;
                l = (LongOwn - PLongOwn) * 60;

                Mittelbreite = 1 / 2 * (LatOwn + PLatOwn);
                a = l * Math.cos(Mittelbreite);

                a_quad = Math.pow(a, 2);
                b_quad = Math.pow(b, 2);

                d = Math.sqrt(a_quad + b_quad);

                TimeNow = Integer.parseInt(STime.getText());
                TimeInci = Integer.parseInt(STimeIncident.getText());
                TimeDif = TimeNow - TimeInci;
                
                if (d<5 && TimeDif < 0.5 ) {
                    txtPaneSAR.setText("Expanding Search Square");
                }

Wenn ich den Teil "ausklammer" funktioniert es, nur mit halt nicht.

Der Fehler der mir ausgespuckt wird ist folgender:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:592)
    at java.lang.Integer.parseInt(Integer.java:615)
    at de.jade.kursarbeit.JFrame$11.actionPerformed(JFrame.java:319)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 
Hatsi09

Hatsi09

Aktives Mitglied
also eine NumberFormatException ist, wenn in dem String, den du zu einer Zahl castest, keine Zahl drin ist. Hier bei deiner Exception ist einer der Strings leer, d.h. in dem TextField wurde nichts eingegeben. Ihr würde auch anstatt der Integer.parseInt die Integer.valueof verwenden, weil aus meiner Erfahrung weiß ich, dass die parseInt nicht so sauber funktioniert. Allgemein verwendet die valueof intern die parseInt. Also check mal, ob die Strings, die du parsen willst auch wirklich Zahlen enthalten und überprüfe vorher, ob eine Eingabe in dem TextField erfolgt ist (mit getText().isEmpty());)
 
R

RedVelvet

Mitglied
So das klappt vielen vielen Dank, du bist echt eine große Hilfe.
Eine Frage (erstmal 😅) habe ich nicht.... gibt es eventuell etwas wie ich in der if Abfrage ein equals this or that machen kann??
Also als Beispiel:
Ich habe die
JComboBox SearchObject = new JComboBox(SO);
mit dem String
private String[] SO = { "Search Object", "Person in water", "4-Person liferaft", "6-Person liferaft",
"15-Person liferaft", "25-Person liferaft", "Boat < 5m", "Boat 7m", "Boat 12m", "Boat 24m" };

und möchte if if-statement sagen das mein selectedItem.equals ("Person in water" or "4-Person liferaft")

ist das irgendwie möglich eventuell? Weil wenn ich && eingebe müsste ja beides ausgewählt werden, was bei der selben JComboBox nicht funktioniert
 
R

RedVelvet

Mitglied
So meine hoffentlich letzte Frage..... 😅
Im JTextField möchte ich eine Zahl mit Komma eingeben, dabei wird mir aber ein Fehler ausgegeben. Habe es auch schon mit Punkt statt Komma versucht aber das geht auch nicht. Zufällig ne Idee wie man das lösen kann? Sonst erstelle ich einfach ein neues JTextField für die Zahl hinterm Komma....
hier der Code:
Java:
POILatD = new JTextField();
        POILatD.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                LatDPOI = Integer.valueOf(POILatD.getText());
                if (LatDPOI > 90) {
                    JOptionPane.showMessageDialog(null, "Please enter valid minutes", "Error ",
                            JOptionPane.INFORMATION_MESSAGE);

                    OwnPositionLatD.setText("");
                }
            }
        });
        POILatD.setBounds(156, 74, 37, 22);
        contentPane.add(POILatD);
        POILatD.setColumns(10);

und das nutzte ich hier nochmal für meiner Berechnung:
Java:
JButton btnRecommendation = new JButton("Recommended Search Pattern");
        btnRecommendation.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            
                String selectedLatOwn = (String) N_S.getSelectedItem();
                if (selectedLatOwn.equals("S")) {
                    LatOwn = LatOwn *-1;
                }
                String selectedLongOwn = (String) E_W.getSelectedItem();
                if (selectedLongOwn.equals("W")) {
                    LongOwn = LongOwn *-1;
                }
                
                String selectedLatPOI = (String) N_SPOI.getSelectedItem();
                if (selectedLatPOI.equals("S")) {
                    PLatOwn = PLatOwn *-1;
                }
                String selectedLongPOI = (String) E_WPOI.getSelectedItem();
                if (selectedLongPOI.equals("W")) {
                    PLongOwn = PLongOwn *-1;
                }        
                
                LatDOwn = Integer.valueOf(OwnPositionLatD.getText());
                LatMOwn = Integer.valueOf(OwnPositionLatM.getText());
                LongDOwn = Integer.valueOf(OwnPositionLongD.getText());
                LongMOwn = Integer.valueOf(OwnPositionLongM.getText());
                LatMin = LatMOwn / 60;
                LongMin = LongMOwn / 60;

                LatOwn = LatDOwn + LatMin;
                LongOwn = LongDOwn + LongMin;

                LatDPOI = Integer.valueOf(POILatD.getText());
                LatMPOI = Integer.valueOf(POILatM.getText());
                LongDPOI = Integer.valueOf(POILongD.getText());
                LongMPOI = Integer.valueOf(POILongM.getText());
                PLatMin = LatMPOI / 60;
                PLongMin = LongMPOI / 60;

                PLatOwn = LatDPOI + PLatMin;
                PLongOwn = LongDPOI + PLongMin;

                b = (LatOwn - PLatOwn) * 60;
                l = (LongOwn - PLongOwn) * 60;

                Mittelbreite = 1 / 2 * (LatOwn + PLatOwn);
                a = l * Math.cos(Mittelbreite);

                a_quad = Math.pow(a, 2);
                b_quad = Math.pow(b, 2);

                d = Math.sqrt(a_quad + b_quad);

Der Fehler sieht wie folgt aus:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "24,2"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.valueOf(Integer.java:766)
    at de.jade.kursarbeit.JFrame$11.actionPerformed(JFrame.java:325)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    at java.awt.EventQueue$4.run(EventQueue.java:733)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 
Hatsi09

Hatsi09

Aktives Mitglied
ja das Problem ist, dass in Java Zahlen immer mit Punkt abgespeichert werden, sprich Komma kennt er nicht, probier mal LatDPOI = Integer.valueOf(POILatD.getText().replace(',', '.'))
 
R

RedVelvet

Mitglied
Leider klappt das auch nicht, genauso klappt es nicht wenn ich die Zahl schon mit Punkt statt Komma eingebe.
 
Blender3D

Blender3D

Top Contributor
m JTextField möchte ich eine Zahl mit Komma eingeben, dabei wird mir aber ein Fehler ausgegeben.
Dein Ansatz ist meines Erachtens nicht wirklich gut. Das JTextField sollte sicherstellen, dass die Eingabe bereits formatiert erfolgt.
--> Beim Umwandeln von String in Zahlen kommt es zu keinem Fehler und der Benutzer ist gezwungen die erwartete Eingabe korrekt zu machen.
Hier ein Beispiel für eine formatierte Eingabe mit JTextField.
1609683695765.png

formatierte Usereingabe:
import javax.swing.JFrame;

public class TestFormatedInput {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Test Input");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new FormatedInputPanel(900, 80));
        frame.setResizable(false);
        frame.pack();
        frame.setVisible(true);
    }
}
FormatedInputPanel:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import textfieldinput.TypeDocument.TYPE;

@SuppressWarnings("serial")
public class FormatedInputPanel extends JPanel {
    private static final int FONTHEIGHT = 20;
    private JTextField[] input = { new JTextField(new TypeDocument(TYPE.FLOAT), "4.4", 10),
            new JTextField(new TypeDocument(TYPE.TEXT), "Hallo", 10),
            new JTextField(new TypeDocument(TYPE.INT), "10", 10) };
    private JLabel output = new JLabel();
    private JButton ok = new JButton("ok");

    public FormatedInputPanel(int width, int height) {
        setPreferredSize(new Dimension(width, height));
        setFont(new Font("Courier", Font.BOLD, FONTHEIGHT));
        for (int i = 0; i < input.length; i++) {
            add(input[i]);
            input[i].setHorizontalAlignment(JTextField.CENTER);
            input[i].setFont(getFont());
            ((TypeDocument) input[i].getDocument()).setMaxSize(10);
        }
        output.setPreferredSize(new Dimension(width / 3, 2 * FONTHEIGHT));
        output.setBorder(BorderFactory.createLineBorder(Color.BLUE));
        output.setFont(getFont());
        output.setHorizontalAlignment(JLabel.CENTER);
        output.setOpaque(true);
        output.setBackground(Color.WHITE);
        add(output);
        add(ok);
        ok.setFont(getFont());
        ok.addActionListener(e -> {
            String str = "  ";
            for (JTextField txt : input)
                str += txt.getText() + "  ";
            output.setText(str);
        });
    }
}
TypeDocument:
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

@SuppressWarnings("serial")
public class TypeDocument extends PlainDocument {
    public static enum TYPE {
        TEXT, INT, FLOAT
    }

    public static final int NO_LIMIT = -1;
    private int maxSize = NO_LIMIT;
    private TYPE type = TYPE.TEXT;

    /**
     * Offers user's formated input of integer floating point or text.
     *
     * @param type
     *            {TEXT, INT , FLOAT}
     * @see #setMaxSize(int)
     */
    public TypeDocument(TYPE type) {
        this.type = type;
    }

    @Override
    public void insertString(final int offset, String text, final AttributeSet attributeSet)
            throws BadLocationException {
        if (type == TYPE.INT || type == TYPE.FLOAT) {
            String format = ".*[^0-9";
            String point = "";
            if (type == TYPE.FLOAT) {
                Content content = getContent();
                String txt = content.getString(0, content.length());
                point = txt.contains(".") ? "" : ".";
            }
            format += point + "]";
            text = text.replaceAll(format, ""); // remove all non digits
        }
        if (isNewLengthOk(text))
            super.insertString(offset, text, attributeSet);
    }

    protected boolean isNewLengthOk(final String text) {
        if (maxSize == NO_LIMIT || getLength() + text.length() <= maxSize)
            return true;
        return false;
    }

    /**
     * Limits input to given length.
     *
     * @param maxSize
     */
    public void setMaxSize(int maxSize) {
        if (maxSize < 1)
            return;
        this.maxSize = maxSize;
    }
}
 
R

RedVelvet

Mitglied
Dein Ansatz ist meines Erachtens nicht wirklich gut. Das JTextField sollte sicherstellen, dass die Eingabe bereits formatiert erfolgt.
--> Beim Umwandeln von String in Zahlen kommt es zu keinem Fehler und der Benutzer ist gezwungen die erwartete Eingabe korrekt zu machen.
Hier ein Beispiel für eine formatierte Eingabe mit JTextField.
Also vielen Dank für den Beitrag, leider verstehe ich nicht so ganz was da passiert und wie ich das bei mir einfügen kann. (Bin wirklich ziemlicher Anfänger wie man an meinen Fragen wohl erkennen kann 😅 )
Durch den Tipp von thecain habe ich es jetzt so hinbekommen das es auf jeden Fall für meine Zwecke funktioniert.....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
S n aus m - Auswahl AWT, Swing, JavaFX & SWT 2
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
F JavaFX ChoiceBox Name als Auswahl bei einer Objektliste AWT, Swing, JavaFX & SWT 4
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
J AWT choice mit viel Auswahl aktualisiert sich nicht korrekt beim scrollen?! AWT, Swing, JavaFX & SWT 3
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
M JComboBox Item-Auswahl in JTable AWT, Swing, JavaFX & SWT 2
M SWT Wie mehr als 5000 Einträge zur Auswahl geben? AWT, Swing, JavaFX & SWT 9
G JComboBox mit CellRenderer (Auswahl) AWT, Swing, JavaFX & SWT 11
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
E JTree Auswahl AWT, Swing, JavaFX & SWT 2
P Swing Auswahl einer JComboBox für eine andere JComboBox übernehmen AWT, Swing, JavaFX & SWT 4
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
T Auswahl in GUI-Builder mit Grafiken ausstatten AWT, Swing, JavaFX & SWT 4
M Swing jList Auswahl löschen AWT, Swing, JavaFX & SWT 2
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
U JComboBox: (Vor)auswahl nach Aktualisierung AWT, Swing, JavaFX & SWT 2
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
P Speichern und Auswahl gezeichneter Objekte AWT, Swing, JavaFX & SWT 7
K Auswahl einer ButtonGroup erfahren AWT, Swing, JavaFX & SWT 3
G JTextfield Inhalt markieren bei Auswahl AWT, Swing, JavaFX & SWT 2
H Auswahl in JComboBox abbrechen AWT, Swing, JavaFX & SWT 5
K Choice auswahl und String in Int AWT, Swing, JavaFX & SWT 8
DEvent Standard Font-Auswahl-Dialog? AWT, Swing, JavaFX & SWT 15
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
B Relative Pfadangaben beibehalten bei Auswahl in Dialog AWT, Swing, JavaFX & SWT 2
E JComboBox auswahl einschraenken AWT, Swing, JavaFX & SWT 5
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
M JTable mit JCombobox eigene Auswahl pro Zeile ? AWT, Swing, JavaFX & SWT 3
M Farb/bild auswahl AWT, Swing, JavaFX & SWT 15
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
R Verzeichnis-Auswahl mit FileDialog ? AWT, Swing, JavaFX & SWT 3
G JComboBox nimmt Auswahl nicht an AWT, Swing, JavaFX & SWT 5
N JList: Auswahl erzwingen AWT, Swing, JavaFX & SWT 6
H Doppelte Auswahl bei ItemEvent für eine Dropdownliste AWT, Swing, JavaFX & SWT 5
R 3D-Grafik Verwendung mehrerer Texturen AWT, Swing, JavaFX & SWT 1
D JavaFX Drag&Drop mehrerer TreeViews oder TableViews AWT, Swing, JavaFX & SWT 1
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
K richtiges Ausrichten mehrerer Labels AWT, Swing, JavaFX & SWT 3
M Ansätze zur Kombination mehrerer Listener für Interaktion AWT, Swing, JavaFX & SWT 19
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
M auslesen mehrerer JComboBoxen funktioniert nicht AWT, Swing, JavaFX & SWT 9
M Swing Selektion mehrerer JToggleButton's in einer Gruppe AWT, Swing, JavaFX & SWT 5
G Darstellungsproblem mehrerer Komponenten AWT, Swing, JavaFX & SWT 9
D Überwachung mehrerer Textfelder AWT, Swing, JavaFX & SWT 4
S Aufbau mehrerer verschiedener grafischer Oberflächen AWT, Swing, JavaFX & SWT 2
S Probleme mit JComboboxen(?) AWT, Swing, JavaFX & SWT 18
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
sandaime Swing 3 JComboBoxen ausgelesen Elemente einzel ausgeben AWT, Swing, JavaFX & SWT 6
A Swing zwei JComboBoxen miteinander vergleichen und anschließend Button umwandeln AWT, Swing, JavaFX & SWT 7
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
G JComboBoxen synchronisieren AWT, Swing, JavaFX & SWT 8
F JTable Spalte sortieren mit lauter JComboboxen ? AWT, Swing, JavaFX & SWT 15
G Zwei JComboBoxen AWT, Swing, JavaFX & SWT 5
S mehrere JComboBoxen und ActionListener AWT, Swing, JavaFX & SWT 7
H JComboBoxen dynamisch erzeugen AWT, Swing, JavaFX & SWT 3
B TableCellRenderer + JComboBoxen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben