Problem mit JTable

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






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();
            }
        });
    }
}
 

Neue Beiträge

Zurück