Как сделать переменную из значения, возвращаемого методом getTextWidth? - PullRequest
0 голосов
/ 13 октября 2018

Я работаю над диаграммой школьного задания.Однако я застрял, когда пытался расположить ярлык слева от бара.Я предполагаю, что мне нужно использовать метод, чтобы получить ширину текста надписи, а затем вычесть значение из позиции x на панели.

public class Bar {
    // the numeric value of the bar
    private int value;
    // the rectangle representing the bar
    private Rectangle view;
    // The text label for this bar
    private Text label;
    // The value as a text object
    private Text valueText;

    /**
     * Constructor for a bar object.  The rectangle for the bar is
     * also constructed here and its size is set to the given height.
     * The value of the bar is initialised to 0.
     * If there is a label for the bar, a Text object is created using the 
     * text of the label and the colour of the label set to black.
     * The bar and the label are not visible until the display method
     * is called.
     *
     * @param label The label for the bar.
     * @param width The height of the bar.
     */
    public Bar(String label, int height) {

        view = new Rectangle();
        view.changeSize (0,height);
        this.label = new Text(label);
        display();
    }

    public  void display() {
        label.makeVisible();
        view.makeVisible();
    }

    public void setValue (int Newvalue){
        value= Newvalue;
    }

    public void setPosition (int x, int y){
       view.setPosition(x,y);
       label.setPosition(x,y);
    }

    public int getTextWidth() {
        return (int) ((Text)label).getWidth();

    }
}

Редактировать: я приложил снимок экрана с моей программой BlueJ и описание назначения. гистограмма назначение Я создал на общедоступной панели калибровки панель в виде прямоугольника с именем «view».Ширина прямоугольника (бара) изначально установлена ​​на ноль, поэтому на холсте появляется в виде линии (см. Рисунок).Я создал метку в виде текста, которая должна появляться слева от панели (мой прямоугольник) каждый раз, когда я редактирую ширину.Дело в том, что я не знаю, как изменить ширину в методе Public void set value.Когда я вызываю метод и в качестве значения параметра ввожу 100, значение бара должно измениться на 100, а ширина представления (прямоугольника) должна измениться на 100, но это не так.И этикетка находится в неправильном положении.В методе setPosition я должен сделать так, чтобы метка отображалась слева от прямоугольника (бара).Но как?И затем, когда я вызываю метод отображения, я должен увидеть на ивах значение, представляющее ширину полосы.Как?Большое спасибо.

Просто, чтобы вы знали, я абсолютный новичок, всего через 3 недели моего курса.

Так что в основном я хочу, чтобы значение, возвращаемое getTextWidth (), вычло его из xкоордината панели (текст должен появиться слева от панели).Любая помощь очень ценится.

...