
Hey, Im sort of a beginner of java, and i at the moment of working on a program that takes the input of an equation (eg. y=3x) and plots possible values for it on a cartesian plane thats on a seperate JPanel.
Here is my code: This is Class 1
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Graphs extends JFrame implements KeyListener
{
GraphingPanel p = new GraphingPanel();
JPanel[] Panel = new JPanel[2];
JLabel[] Label = new JLabel[100];
JTextField[] Field = new JTextField[100];
JButton[] Enter = new JButton[100];
JButton[] Clear = new JButton[100];
JComboBox Subjects = new JComboBox();
JComboBox Topics = new JComboBox();
public Graphs()
{
super();
setSize(600, 500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setUndecorated(true);
setLocationRelativeTo(null);
LoadUI();
}
public void LoadUI()
{
Field[0] = new JTextField();
Panel[0] = new JPanel(null);
Panel[1] = p;
Field[0].setBounds(240, 20, 120, 30);
Field[0].addKeyListener(this);
Panel[0].add(Field[0]);
Panel[0].add(Panel[1]);
add(Panel[0]);
setVisible(true);
}
public static void main(String[] args)
{
Graphs Main = new Graphs();
}
@Override
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==10)
{
String str = Field[0].getText();
DrawGraph g = new DrawGraph(str);
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
The Second Class:
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class GraphingPanel extends JPanel
{
public GraphingPanel()
{
setBounds(50, 50, 500, 400);
setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
setBackground(Color.WHITE);
}
public void paintComponent(Graphics g)
{
super.paintComponents(g);
int panelWidth = getWidth();
int panelHeight = getHeight();
g.setColor(Color.WHITE);
g.fillRect(0, 0, panelWidth, panelHeight);
g.setColor(Color.BLACK);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(1f));
g2.draw(new Line2D.Double( 0, panelHeight/2, panelWidth ,panelHeight/2 ));
g2.draw(new Line2D.Double(panelWidth/2,0, panelWidth/2 ,panelHeight));
g2.setFont(new Font("Times New Roman", Font.PLAIN, 13));
for(int i=1;i<getWidth();i+=9)
{
g2.draw(new Line2D.Double(i, (getHeight()/2)-2, i, (getHeight()/2)+2));
}
for(int i=1;i<getHeight();i+=9)
{
g2.draw(new Line2D.Double((getWidth()/2)-2, i,(getWidth()/2)+2,i));
}
}
}
Im just struggling to figure out how to plot a line graph after the user has input his equation into the Text field.. Your help will be greatly appreciated:)
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.