JessicaJudt
Grünschnabel
Hallo,
ich habe ein Problem mit dem Button "zeigErgebnis". Beim Drücken dieses
Buttons sollte die in Textfelder eingegebenen Werte aus Object Rows in
einem neuen Frame angezeigt werden. Dazu auch die Anzahl von Werten
zwischen Min und Minis, Minis und Maxis, Maxis und Max, und gesamt(Min und
Max).
Hier gilt: Min < Minis < Maxis < Max. Wäre sehr dankbar für euere Hilfe.
LG,
Jessica
ich habe ein Problem mit dem Button "zeigErgebnis". Beim Drücken dieses
Buttons sollte die in Textfelder eingegebenen Werte aus Object Rows in
einem neuen Frame angezeigt werden. Dazu auch die Anzahl von Werten
zwischen Min und Minis, Minis und Maxis, Maxis und Max, und gesamt(Min und
Max).
Hier gilt: Min < Minis < Maxis < Max. Wäre sehr dankbar für euere Hilfe.
LG,
Jessica
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableTest4 {
public static void main(String args[]) {
JFrame f = new JFrame("JTable Testing");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
Object rows[][] = {{"-1.02", "2.00", "-5.00"},
{"4.92", "3.09", "4.00"},
{"-3.27", "1.78", "5.00"},
{"12.90", "8.78", "10.00"},
{"7.27", "8.34", "6.00"},
{"-2.98", "-4.10", "0.18"},
{"4.76", "-2.29", "-2.22"}};
Object columns[] = {"A1", "A2", "A3"};
JPanel textfieldPanel = new JPanel();
JLabel label1 = new JLabel("Min:", SwingConstants.LEFT);
textfieldPanel.add(label1);
final JTextField tf1 = new JTextField(5);
textfieldPanel.add(tf1);
textfieldPanel.setBorder(BorderFactory.createEtchedBorder());
f.getContentPane().add(textfieldPanel, BorderLayout.NORTH);
JLabel label2 = new JLabel("Minis:", SwingConstants.LEFT);
textfieldPanel.add(label2);
final JTextField tf2 = new JTextField(5);
textfieldPanel.add(tf2);
textfieldPanel.setBorder(BorderFactory.createEtchedBorder());
f.getContentPane().add(textfieldPanel, BorderLayout.NORTH);
JLabel label3 = new JLabel("Maxis:", SwingConstants.LEFT);
textfieldPanel.add(label3);
final JTextField tf3 = new JTextField(5);
textfieldPanel.add(tf3);
textfieldPanel.setBorder(BorderFactory.createEtchedBorder());
f.getContentPane().add(textfieldPanel, BorderLayout.NORTH);
JLabel label4 = new JLabel("Max:", SwingConstants.LEFT);
textfieldPanel.add(label4);
final JTextField tf4 = new JTextField(5);
textfieldPanel.add(tf4);
textfieldPanel.setBorder(BorderFactory.createEtchedBorder());
f.getContentPane().add(textfieldPanel, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel();
JButton button1 = new JButton("zeigTabelle");
buttonPanel.add(button1);
/*Zeigt die Results nachdem man 4 Werte aus Rows im Textfield
eingegeben habe, Min <= Minis <= Maxis <= Max
*/
JButton button3 = new JButton("zeigErgebnis");
buttonPanel.add(button3);
buttonPanel.setBorder(BorderFactory.createEtchedBorder());
f.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
final JTable table = new JTable(rows, columns) {
@Override
public Component prepareRenderer(TableCellRenderer renderer,
int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
c.setBackground(Color.WHITE);
double value = 0;
double min = 0;
double max = 0;
double minis = 0;
double maxis = 0;
String val = getValueAt(row, column).toString();
if (!val.equals("")) {
value = Double.parseDouble(val);
}
String minS = tf1.getText();
if (!minS.equals("")) {
min = Double.parseDouble(minS);
}
String maxS = tf2.getText();
if (!maxS.equals("")) {
max = Double.parseDouble(maxS);
}
String minisS = tf3.getText();
if (!minisS.equals("")) {
minis = Double.parseDouble(minS);
}
String maxisS = tf4.getText();
if (!maxisS.equals("")) {
maxis = Double.parseDouble(maxS);
}
if (value >= min && value <= max ){
c.setBackground(Color.BLUE);
}
return c;
}
};
JScrollPane scrollPane = new JScrollPane(table);
content.add(scrollPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setVisible(true);
button1.addActionListener(new ActionListener() {
//@Override
public void actionPerformed(ActionEvent e) {
table.repaint();
}
});
}
}