長方形と楕円形で動作するこのプログラムに問題があります。長方形/楕円形プログラム
レクタングル/楕円/エッジ/ラベル、ラベルにはテキストフィールド を選択すると、四角形/楕円のいずれかを選択してフレーム内のどこかをクリックすると描画されます。エッジは、マウスをドラッグして行います。
私は理解していないが、長方形と楕円の両方を行う方法であり、ここでは「RectangleNode」にスーパー等であることを与えられたサンプル抽象クラスは、抽象クラスGraphElementのためのコードです:
import java.awt.Graphics2D;
abstract public class GraphElement
{
private double xPos;
private double yPos;
protected String label;
public GraphElement()
{
xPos = 0;
yPos = 0;
}
public GraphElement(double x, double y)
{
xPos = x;
yPos = y;
}
public final double getXPos()
{
return xPos;
}
public final double getYPos()
{
return yPos;
}
public void moveTo (double xLoc, double yLoc)
{
xPos = xLoc;
yPos = yLoc;
}
public String toString()
{
String str = "(X,Y) Position: (" + xPos + "," + yPos + ")\n";
return str;
}
abstract void draw(Graphics2D g2);
abstract boolean isSelected(double x, double y);
boolean applyLabel()
{
return true;
}
public String getLabel()
{
return label;
}
public void setLabel(String label)
{
this.label = label;
}
}
私は完全に失われているので、どんな助けも高く評価されます。
GraphDrawViewer:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class GraphDrawViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
final int FRAME_WIDTH = 1000;
final int FRAME_HEIGHT = 1000;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("Graph Draw");
frame.setLayout(new BorderLayout());
//Panel
JPanel panel = new JPanel();
frame.add(panel, BorderLayout.NORTH);
//Buttons
JButton rectangleButton = new JButton("Rectangle");
JButton ellipseButton = new JButton("Ellipse");
JButton edgeButton = new JButton("Edge");
JButton labelButton = new JButton("Label");
//Text Field
final int FIELD_WIDTH = 10;
final JTextField labelField = new JTextField(FIELD_WIDTH);
//Add all buttons
panel.add(rectangleButton);
panel.add(ellipseButton);
panel.add(edgeButton);
panel.add(labelButton);
panel.add(labelField);
frame.setVisible(true);
}
}
はい、許可されていませんか?もしそうなら、私はそれを削除しますか何か – JA3N
宿題は大丈夫です。次回は宿題としてタグ付けするだけです。 –
RectangleとEllipseとRectangleNodeのコードを投稿できますか? –