Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Помогите наладить


Автор: sidiakin 26.7.2011, 17:49
Что-то я не так делаю... Насоздавал классов в одном определил методы get/set. А из другого класса пытаюсь вызвать эти методы, но не работает. Прога ошибку не выдает, а просто зацикливается. Объясните пож. что не так. Проблема в классе GraphPan в методе drawString(getXmax()). Ткните мордой пож. хочу разобраться. Спасибо!: 

Код

import javax.swing.*;

public class QuantumGr{
    public static void main(String[] args){
        JFrame mainWin = new MainWindow();
        mainWin.setVisible(true);
    }
}
------------------------------------------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MainWindow extends JFrame{

    private BtnPan btnPan;
    private GraphPan graphPan;
    private Container cont;
    
    MainWindow(){
        super("MainWin");
        
        cont = getContentPane();
        cont.setLayout(new BorderLayout());
        
        graphPan = new GraphPan();
        graphPan.setBackground(Color.black);
        cont.add(graphPan, BorderLayout.CENTER);
        
        btnPan = new BtnPan();
        cont.add(btnPan, BorderLayout.SOUTH);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(650, 400);
    }
}
---------------------------------------------------------------
import javax.swing.*;
import java.awt.*;

public class GraphPan extends JPanel{

    BtnPan btnPan;
    
    private int Xworld(double x){
        return (int)Math.round(getWidth() * (x/10));
    }
    private int Yworld(double y){
        return (int)Math.round(getHeight() * (1-(y/10)));
    }

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        g.setColor(Color.yellow);
        drawAxes(g);
    }
    
    void drawAxes(Graphics g){
        g.drawString("test", btnPan.getXmax(),20);
        g.drawLine(Xworld(1),Yworld(0),Xworld(1),Yworld(10));
        g.drawLine(Xworld(0),Yworld(1),Xworld(10),Yworld(1));
    }
}
-------------------------------------------------------------------------
import javax.swing.*;
import java.awt.*;

public class BtnPan extends JPanel{

    private double yMax;
    private double xMax;

    private JTextField tfY;
    private JTextField tfX;
    private JTextField tfVecY;
    private JTextField tfVecX;
    private JButton btnBuild;
    
    public BtnPan(){
        
        yMax=10; xMax=10;
    
        setLayout(new FlowLayout());
        
        add(new JLabel("YMax(Вт)"));
        tfY = new JTextField(Integer.toString((int)yMax));
        add(tfY);
        
        add(new JLabel("XMax(В)"));
        tfX = new JTextField(Integer.toString((int)xMax));
        add(tfX);
        
        add(new JLabel("Вектор Y"));
        tfVecY = new JTextField("2,4,6", 10);
        add(tfVecY);
        
        add(new JLabel("Вектор X"));
        tfVecX = new JTextField("2,4,6", 10);
        add(tfVecX);
        
        btnBuild = new JButton("Построить");
        add(btnBuild);
    }
    
    public double getYmax(){return yMax;}
    public void setYmax(double yMax){this.yMax=yMax;}
    
    public double getXmax(){return (int)xMax;}
    public void setXmax(double xMax){this.xMax=xMax;}
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)