java - 需要有关 JPanel - 绘图区域和监听器的建议

标签 java jframe paint

下面是我目前用于绘图类的代码,我一直在寻找教我如何在屏幕上创建 3 个形状的文档。

我有一个 jframe,带有用于选择形状(如下所示)等的菜单。

if (clickedMenu.getText().equals("Square")){                    
value = pane.returnslider();
shape = new ASquare(value);

所以我的问题是:如何编辑下面的类来创建一个出现在我的 Jframe 上的 2D 正方形,该正方形的大小根据 slider 值而变化?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package assignment;

import java.awt.Graphics;

/**
 *
 * @author Steven
 */
public class MyDrawing extends javax.swing.JPanel {

/**
 * Creates new form MyDrawing
 */
 @Override public void paintComponent(Graphics g) {
     super.paintComponent(g);    // paints background


  }   
}
<小时/>

我的 jpanel 中的一些代码可能会帮助您回答我的问题:

public class MyChangeAction implements ChangeListener {

    //complete code here
    @Override
    public void stateChanged(ChangeEvent ce) {
        double value = slider.getValue();
        String str = Double.toString(value);
        sliderLabel.setText(str);
        DecimalFormat df = new DecimalFormat("0.0");

        boundary_length.setText("" +     df.format(MyFrame.shape.computeBoundaryLength(value)));
        area.setText("" + df.format(MyFrame.shape.computeArea(value)));
    }
} // end class

public double returnslider() {
    return slider.getValue();
}
<小时/>

我的方 block 类:

package assignment;

import java.awt.event.ActionListener;

/**
 *
 * @author b00560806
 */
public class ASquare extends MyShape {

double value;

public ASquare(double value) {
    this.value = value;
}


@Override
public double computeBoundaryLength(double Length) 
{
    thelength=(4*Length);
    return thelength;
}

@Override
public double computeArea(double Length) 
{
    thearea=(Length*Length);
    return thearea;
}

}

最佳答案

试试这个:

@Override 
public void paintComponent(Graphics g) {
    super.paintComponent(g);    // paints background

    Graphics2D g2 = (Graphics2D)g;
    g2.setStroke(new Stroke((int)returnslider));
    // rest of drawing.
}  

关于java - 需要有关 JPanel - 绘图区域和监听器的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201456/

相关文章:

java - Apache Spark Java API + Twitter4j + 将 Twitter 流保存到 Elasticsearch 时出现异常

java - 如何防止每次在Docker Maven插件中运行Docker镜像?

java - Android 缺少 Java 中可用的一些时区

java - 动态更改最终 JRadioButton 的标题

java - 关闭 JFrame 窗口后启动事件

android - 添加 CornerPathEffect 时 FillType.EVEN_ODD 的不同行为?

java - 如何在switch中使用String?

Java Jframe 向另一个 X Server 启动另一个 JFrame

java - 无法让图像在 Java 中显示

Java GUI,单击按钮时绘制图像