Ergebnis 1 bis 5 von 5
-
13.01.2017, 19:38 #1MasterSansai
Hilfe bei Java-Programmierung (Layout)
Ich muss gerade für meinen Programmierungskurs folgende Aufgabe programmieren:
Schreiben Sie ein Programm, das folgende Eigenschaften hat:
• Eingabe eines Systems linearer Ungleichungen in zwei Variablen. Tipp: Alle Ungleichungen können
in der Form a x+b y≤c angegeben werden. Es muss also pro Ungleichung die Möglichkeit
geben, die reellen Zahlen a , b und c einzugeben. Implementieren Sie eine
benutzerfreundliche Eingabe.
• Eine Graphik, die die zu den Ungleichungen gehörenden Geraden in einem Koordinatensystem
darstellt.
• Berechnung der Eckpunkte des durch das System von Ungleichungen definierten Polygons
• Eingabe einer Zielfunktion f ( x ; y )=g x+h y , g und h sind dabei reelle Zahlen, die
über ein GUI eingegeben werden müssen. Implementieren Sie sich eine benutzerfreundliche
Eingabe.
• Berechnung und Anzeige des maximalen Funktionswert der Zielfunktion unter den
Einschränkungen, die durch das System von Ungleichungen festgelegt werden.
• Implementieren Sie nur einen ActionListener und zwar als Singleton.
Ich hab keine Ahnung welches Layout ich dafür verwenden kann und wie ich es anwende (die Unterlagen von meinem Kurs sind da ziemlich ungenau)
Ich hänge hier noch ein Bild an wie ich mir das Programm vorstelle.
Angedacht ist es so:
Beim Start des Programm öffnet sich ein Fenster, indem jeweils ein Button zur berechnung von Gleichung und Ungleichung sind. Mit einem Knopfdruck öffnet sich dann ein jeweiliges Fenster das so aufgebaut ist, wie in dem Bild, dass ich angehangen habe.
Vielleicht kann mir jemand dabei helfen.
Mit freundlichen Grüßen
MasterSansai
-
Hilfe bei Java-Programmierung (Layout)
Schau dir mal diesen Bereich an. Dort ist für jeden was dabei!
-
13.01.2017, 21:39 #2medeman
AW: Hilfe bei Java-Programmierung (Layout)
Was benutzt du für eine IDE (wenn überhaupt)? Einige haben einen GUI-Builder eingebaut (bei anderen gibt es welche als Plug-Ins), da kannst du dir die GUI zusammenklicken
-
13.01.2017, 21:56 #3MasterSansai
-
14.01.2017, 19:21 #4MasterSansai
AW: Hilfe bei Java-Programmierung (Layout)
Okay ich habe gerade ein Problem: ich habe ein Fenster mit JFormDesigner gebaut, allerdings lässt sich das Fenster aufs brechen nicht öffnen.
Startene Datei:
Code:import P2_pruefung.Frame.LinearFrame; public class Start { public static void main(String[] args){ LinearFrame mf = new LinearFrame(); mf.setVisible(true); } }
Code:package P2_pruefung.Frame; import java.awt.*; import javax.swing.*; @suppressWarnings("serial") public class LinearFrame extends JPanel { public LinearFrame() { panel1 = new JPanel(); panel2 = new JPanel(); label6 = new JLabel(); textField4 = new JTextField(); label7 = new JLabel(); textField5 = new JTextField(); label8 = new JLabel(); textField6 = new JTextField(); button1 = new JButton(); label9 = new JLabel(); textField7 = new JTextField(); label10 = new JLabel(); textField8 = new JTextField(); label11 = new JLabel(); label12 = new JLabel(); button2 = new JButton(); panel3 = new JPanel(); label13 = new JLabel(); label14 = new JLabel(); panel4 = new JPanel(); //======== panel1 ======== { // // // panel1.setBorder(new javax.swing.border.CompoundBorder( // new javax.swing.border.TitledBorder(new javax.swing.border.EmptyBorder(0, 0, 0, 0), // "JFormDesigner Evaluation", javax.swing.border.TitledBorder.CENTER, // javax.swing.border.TitledBorder.BOTTOM, new java.awt.Font("Dialog", java.awt.Font.BOLD, 12), // java.awt.Color.red), panel1.getBorder())); panel1.addPropertyChangeListener(new java.beans.PropertyChangeListener(){public void propertyChange(java.beans.PropertyChangeEvent e){if("border".equals(e.getPropertyName()))throw new RuntimeException();}}); // // panel1.setLayout(new BorderLayout()); //======== Eingabe-Panel ======== { panel2.setLayout(new GridBagLayout()); ((GridBagLayout)panel2.getLayout()).columnWidths = new int[] {152, 35, 0, 35, 28, 35, 0, 0, 0}; ((GridBagLayout)panel2.getLayout()).rowHeights = new int[] {0, 0, 0, 0, 0}; ((GridBagLayout)panel2.getLayout()).columnWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0E-4}; ((GridBagLayout)panel2.getLayout()).rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 1.0E-4}; label6.setText("Bitte geben sie die von ihnen gew\u00fcnschte Ungleichung ein: "); panel2.add(label6, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); panel2.add(textField4, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); label7.setText("x + "); panel2.add(label7, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); panel2.add(textField5, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); label8.setText("y \u2264 "); panel2.add(label8, new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); panel2.add(textField6, new GridBagConstraints(5, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); //---- Hinzufügen Butten ---- button1.setText("Hinzuf\u00fcgen"); panel2.add(button1, new GridBagConstraints(7, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 0), 0, 0)); label9.setText("Bitte geben sie eine Zielfunktion ein:"); panel2.add(label9, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); //---- Eingabe von x der Zielfunktion ---- textField7.setText("1"); panel2.add(textField7, new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0)); label10.setText("x + "); panel2.add(label10, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0)); //---- Eingabe von y der Zielfunktion ---- textField8.setText("1"); panel2.add(textField8, new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0)); label11.setText("y ="); panel2.add(label11, new GridBagConstraints(4, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0)); label12.setText("f(x ; y)"); panel2.add(label12, new GridBagConstraints(5, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0)); //---- Aktualisieren Button ---- button2.setText("Aktualisieren"); panel2.add(button2, new GridBagConstraints(7, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); } panel1.add(panel2, BorderLayout.NORTH); //======== Schnittpunkte des Lösungspolynoms ======== { panel3.setLayout(new GridBagLayout()); ((GridBagLayout)panel3.getLayout()).columnWidths = new int[] {136, 0, 0}; ((GridBagLayout)panel3.getLayout()).rowHeights = new int[] {0, 0, 0, 0}; ((GridBagLayout)panel3.getLayout()).columnWeights = new double[] {0.0, 0.0, 1.0E-4}; ((GridBagLayout)panel3.getLayout()).rowWeights = new double[] {0.0, 0.0, 0.0, 1.0E-4}; label13.setText("Schnittpunkte des Polynoms:"); panel3.add(label13, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); panel3.add(label14, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 5, 5), 0, 0)); } panel1.add(panel3, BorderLayout.WEST); //======== Grafik ======== { panel4.setLayout(null); { Dimension preferredSize = new Dimension(); for(int i = 0; i < panel4.getComponentCount(); i++) { Rectangle bounds = panel4.getComponent(i).getBounds(); preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width); preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height); } Insets insets = panel4.getInsets(); preferredSize.width += insets.right; preferredSize.height += insets.bottom; panel4.setMinimumSize(preferredSize); panel4.setPreferredSize(preferredSize); } } panel1.add(panel4, BorderLayout.CENTER); } } private JPanel panel1; private JPanel panel2; private JLabel label6; private JTextField textField4; private JLabel label7; private JTextField textField5; private JLabel label8; private JTextField textField6; private JButton button1; private JLabel label9; private JTextField textField7; private JLabel label10; private JTextField textField8; private JLabel label11; private JLabel label12; private JButton button2; private JPanel panel3; private JLabel label13; private JLabel label14; private JPanel panel4; }
-
14.01.2017, 22:51 #5MasterSansai
AW: Hilfe bei Java-Programmierung (Layout)
Ich brauche da wirklich dringend Hilfe.
Code:
Code:package P2_pruefung.Frame; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import P2_pruefung.Frame.Funktionen.MyActionListener; @suppressWarnings("serial") public class LinearFrame extends JFrame{ LayoutManager design1 = new BorderLayout(); LayoutManager design2 = new GridBagLayout(); GridBagConstraints rules = new GridBagConstraints(); public LinearFrame(){ // Voreinstellung des Fensters super("Lineare Optimierung"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(1024,760); this.setLocation(400,250); JPanel oben = EingabePanel(); this.add(oben, BorderLayout.NORTH); } public JPanel EingabePanel(){ //Voreinstellungen für das Panel JPanel panel = new JPanel(); panel.setLayout(design2); rules.insets = new Insets(5,5,5,5); rules.fill = GridBagConstraints.HORIZONTAL; //Inhalt des Panels // 1.Label JLabel label1 = new JLabel("Bitte geben sie füre eine Ungleichung \"ax + bx <= c\" jeweils a, b und c ein"); rules.gridx = 1; rules.gridy = 1; rules.weightx = 1; rules.weighty = 1; panel.add(label1, rules); // Eingabe JLabel label2 = new JLabel("a = "); rules.gridx = 2; rules.gridy = 2; rules.weightx = 1; rules.weighty = 1; panel.add(label2, rules); JLabel label3 = new JLabel(" b = "); rules.gridx = 3; rules.gridy = 2; rules.weightx = 1; rules.weighty = 1; panel.add(label3, rules); JLabel label4 = new JLabel(" c = "); rules.gridx = 4; rules.gridy = 2; rules.weightx = 1; rules.weighty = 1; panel.add(label4, rules); JTextField tf_a = new JTextField(); rules.gridx = 2; rules.gridy = 3; rules.weightx = 1; rules.weighty = 1; panel.add(tf_a, rules); JTextField tf_b = new JTextField(); rules.gridx = 3; rules.gridy = 3; rules.weightx = 1; rules.weighty = 1; panel.add(tf_b, rules); JTextField tf_c = new JTextField(); rules.gridx = 4; rules.gridy = 3; rules.weightx = 1; rules.weighty = 1; panel.add(tf_c, rules); JButton hinzu = new JButton("hinzufügen"); rules.gridx = 4; rules.gridy = 4; rules.weightx = 1; rules.weighty = 1; panel.add(hinzu, rules); hinzu.addActionListener(MyActionListener.getInstance()); //hinzu.addActionListener(MyActionListener.getInstance()); System.out.println("ausgegeben!"); return panel; } } class MyActionListener implements ActionListener{ private static MyActionListener instance = null; private MyActionListener(){ } public static MyActionListener getInstance(){ if(instance == null) instance = new MyActionListener(); return instance; } @Override public void actionPerformed(ActionEvent e) { String action = e.getActionCommand().trim(); if(action.equals("hinzufügen")){ //todo } } }
Reminder! Das Rayquaza-Event läuft ab heute! Es ist als Fünf-Sterne klassifiziert, aber die Stats sind etwas stärker geboostet, als in regulären...
Pokémon Karmesin & Purpur