java - 将值传递给 Java 中的外部方法

标签 java swing external

所以我有一个程序,旨在根据 JSlider 的位置动态更新温度计条(使用drawRect)。我想做的是将该值传递给外部方法,以便我可以使用它来更新矩形的大小。我是一名 VB 人员,所以我不知道如何做到这一点。

这是我的主要类(class):

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

public class ThermoProject extends JApplet
{
    JSlider mySlider;
    JPanel sliderPanel;
    JPanel northernPanel = new NorthPanel();
    JLabel printLabel = new JLabel("");
    static int fillSize = 0;
    int topSize = 100;


    public void init() //init is the "main" for an applet
    {
        buildSliderPanel();
        sliderPanel.setBackground(Color.gray);
        add(northernPanel, BorderLayout.NORTH); //separate class
        add(printLabel, BorderLayout.WEST); //add label to top
        add(sliderPanel, BorderLayout.SOUTH); //add the panel to the south of the borderLayout
    }



    private void buildSliderPanel()
    {
        sliderPanel = new JPanel();
        //JSlider(direction, beginning, end, initial location)
        mySlider = new JSlider(JSlider.HORIZONTAL, 0, 100, 0);
        mySlider.setMajorTickSpacing(10);
        mySlider.setPaintTicks(true);
        mySlider.setPaintLabels(true);
        mySlider.setSnapToTicks(true);

        //add listener
        mySlider.addChangeListener(new SliderListener());

        //add to panel
        sliderPanel.add(mySlider);

    }


    public class SliderListener implements ChangeListener
    {

        public void stateChanged(ChangeEvent e)
        {
            //change when slider is moved
            updateThermo(mySlider.getValue());
            //topSize = 100 - fillSize;
            //drawRect(x, y, width, height)
            //fillRect(x, y, width, height)
            repaint();
        }
    }
}

这是我的子类,它主要用于构建单独的 JPanel。

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

public class NorthPanel extends JPanel
{
    JPanel theNorthernPanel;
    int fillSize = 0;

    public void paint(Graphics g)
    {
        //drawRect() and fillRect() args are x, y, width, height
        g.drawRect(90, 90, 200, 30);
        g.setColor(Color.red);
        g.fillRect(90, 90, fillSize, 30);
    }

    public NorthPanel()
    {
        JPanel theNorthernPanel = new JPanel();
        setPreferredSize(new Dimension(200, 200));
        JLabel printLabel = new JLabel(String.valueOf(fillSize));
        theNorthernPanel.add(printLabel);
        add(theNorthernPanel);

    }

    public void updateThermo(int temperature)
    {
        fillSize = temperature;
    }

}

最佳答案

试试这个:

NorthPanel NorthernPanel = new NorthPanel();//声明

然后,

northernPanel.updateThermo(mySlider.getValue());//调用

关于java - 将值传递给 Java 中的外部方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414070/

相关文章:

java - 使用 JLabels 更新图像的正确方法

image - 如何将 youtube 嵌入代码中的 youtube 缩略图设置为 wordpress 中的特色图片?

html - 保存富字段后,Microsoft Sharepoint 将 "External Class"添加到我的 CSS

java - java.io.FileWriter 是专为一次性使用而设计的吗?

java - 从查询更新 JTable

java - JFrame 标 checkout 现重叠

java - 在运行时将一组 JTextField 添加到面板,不同的布局管理器

java - Ljava.lang.Object 类中没有名称为 ='getMessage' 签名为 ='()Ljava/lang/String;' 的静态方法;

java - 在 Java 应用程序中禁用 GraphQL 自省(introspection)日志记录

android - 如何在 Honeycomb 中获取外部内存分配?