Скачиваний:
68
Добавлен:
09.05.2014
Размер:
6.09 Кб
Скачать
package mainframe;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.swing.event.*;

/**
*
* @author eugene & valera
*/

public class DrawFr extends JApplet
{
public void init()
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
DrawFrame fr = new DrawFrame();
add(fr.component, BorderLayout.CENTER);
add(fr.panel,BorderLayout.WEST);
//Runnable ob = new DrawRunnable(fr.component, fr.panel);
//Thread t = new Thread(ob);
}
});
}
}

class DrawFrame
{
public DrawFrame()
{
component.addMouseListener(new MouseHandler());
panel.jButton1.addActionListener(new ButtonAction());
TextInput textinput = new TextInput();
panel.jTextField3.addActionListener(textinput);
RadAction flaglistener = new RadAction();
panel.jList3.addListSelectionListener(flaglistener);
iterator=0;
}

protected static int getMonWidth()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenWidth = screenSize.width;
return screenWidth;
}

protected static int getMonHeight()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height-screenSize.height/20;
return screenHeight;
}

String getPointInf(double x, double y)
{
String pointx = (panel.setDecX(x,component)+" ").substring(0,5);
String pointy = (panel.setDecY(y, component)+" ").substring(0,5);

iterator++;

String cont;

if (component.isContain2(new Point2D.Double(x,y)))
cont = " Point is in area ( R = " + panel.getLogicRad() + " )";
else cont = " Point is not in area ( R = " + panel.getLogicRad() + " )";

String xy = iterator + ") " + "{" + pointx + "; " + pointy + "}" +
cont + "\n";
return xy;
}

String getPointInfString(String x, String y, Point2D p)
{
iterator++;

String cont;

if (component.isContain2(p))
cont = " Point is in area ( R = " + panel.getLogicRad() + " )";
else cont = " Point is not in area ( R = " + panel.getLogicRad() + " )";

String xy = iterator + ") " + "{" + x + "; " + y + "}" + cont + "\n";

return xy;

}

private class MouseHandler extends MouseAdapter
{
public void mousePressed(MouseEvent event)
{
component.add(event.getPoint());
panel.drawKoord(event.getPoint(), component);

double x = event.getPoint().getX();
double y = event.getPoint().getY();

String xy = getPointInf(x, y);


panel.jLabel8.setText("Writing in a file");
panel.writeFile(xy, true);
}
}
//Set point and draw it when push button
private class ButtonAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String jListStrx="0";
String jy;

if (panel.jCheckBox1.isSelected()) jListStrx = "4";
if (panel.jCheckBox2.isSelected()) jListStrx = "3";
if (panel.jCheckBox3.isSelected()) jListStrx = "2";
if (panel.jCheckBox4.isSelected()) jListStrx = "1";
if (panel.jCheckBox5.isSelected()) jListStrx = "0";
if (panel.jCheckBox6.isSelected()) jListStrx = "-1";
if (panel.jCheckBox7.isSelected()) jListStrx = "-2";
if (panel.jCheckBox8.isSelected()) jListStrx = "-3";
if (panel.jCheckBox9.isSelected()) jListStrx = "-4";

jy = panel.jTextField3.getText();

try {
panel.jTextField1.setText(jListStrx);
panel.jTextField2.setText(jy);

double jymod = Double.parseDouble(jy);

if (jymod > -3 && jymod < 5) {
Point2D p =
new Point2D.Double(panel.setPixelX(Double.parseDouble(jListStrx), component),
panel.setPixelY(jymod, component));
component.add(p);

String xy = getPointInfString(jListStrx, jy, p);
panel.writeFile(xy, true);
} else {
panel.jTextField3.setText("not in (-3;5)!");}
}
catch (java.lang.NumberFormatException e){
panel.jTextField3.setText("Bad Data!");
}
catch (java.lang.NullPointerException e){
panel.jTextField3.setText("Field is empty!");
}
catch (Exception e){
panel.jTextField3.setText("Big trouble!");
}
}
}

private class RadAction implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent event)
{
String jListStr=(String)panel.jList3.getSelectedValue();

panel.setOldLogicRad(panel.getLogicRad());
double newlogicrad=1;

newlogicrad = Double.parseDouble(jListStr);

panel.setLogicRad(newlogicrad);
component.repaintPoints(panel);
}
}

private class TextInput implements ActionListener{
public void actionPerformed(ActionEvent event){
try {
((JTextField)event.getSource()).setText("");
}
catch (Exception e)
{
System.out.println("Incorrect TextInput-object use!");
}
}
}

static final int DEFAULT_WIDTH = getMonWidth();
static final int DEFAULT_HEIGHT = getMonHeight();
static int iterator;

NPanel panel = new NPanel();
DrawComponent component = new DrawComponent(panel);
}


Соседние файлы в папке mainframe