Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Java (https://nowa.cc/forumdisplay.php?f=303)
-   -   помогите с кодом (https://nowa.cc/showthread.php?t=126391)

evrei 03.11.2007 15:23

помогите с кодом
 
нужна помощ, не получается написать код


вот что надо зделать:
http://img121.imagevenue.com/aAfkjfp...123_807lo.jpeg
С Slidern цвет заднего плана наверху лежащего Panels изменяется.
С 3 Slidern можно устанавливать цветные компоненты RGB.
Установленная сумма будет показана в текстовом поле.
Производимый/набронный вручную ввод суммы в текстовые поля изменяет цвет заднего плана и позицию соответствующего Sliders.


вот что зделал я и что не ххочет работаь как надо:
Код:

package SwingLayout;
 
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.UIManager;
import javax.swing.colorchooser.AbstractColorChooserPanel;
import javax.swing.colorchooser.ColorSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class ha3 extends AbstractColorChooserPanel
{
public String        getDisplayName()
{
return UIManager.getString("ColorChooser.rgbNameText");
}
public int        getMnemonic()
{
return getIntValue("ColorChooser.rgbMnemonic", -1);
}
public int        getDisplayedMnemonicIndex()
{
return getIntValue("ColorChooser.rgbDisplayedMnemonicIndex", -1);
}
public Icon        getSmallDisplayIcon()
{
return null;
}
public Icon        getLargeDisplayIcon()
{
return null;
}
protected void        buildChooser()
{
setName("color-chooser-rgb");
Color color = getColorFromModel();
setLayout(new GridBagLayout());

// R,G,B,A
buildRow(        RED,
RED_NAME,
"ColorChooser.rgbRedText",
"ColorChooser.rgbRedMnemonic",
color.getRed());
buildRow(        GREEN,
GREEN_NAME,
"ColorChooser.rgbGreenText",
"ColorChooser.rgbGreenMnemonic",
color.getGreen());
buildRow(        BLUE,
BLUE_NAME,
"ColorChooser.rgbBlueText",
"ColorChooser.rgbBlueMnemonic",
color.getBlue());
buildRow(        ALPHA,
ALPHA_NAME,
"Alpha",
'A',
color.getAlpha());
}

protected void        buildRow(int row, String name, String label, String mnemonic, int value)
{
buildRow(row, name, UIManager.getString(label), UIManager.getInt(mnemonic), value);
}

// CSOFF
protected void        buildRow(int row, String name, String label, int mnemonic, int value)
{
// widgets
JLabel rowLabel = new JLabel(label);
rowLabel.setDisplayedMnemonic(mnemonic);
JSlider slider = new JSlider(JSlider.HORIZONTAL, MIN_VALUE, MAX_VALUE, value);
slider.setName("color-chooser-rgb-slider-" + name);
slider.setMajorTickSpacing(85);
slider.setMinorTickSpacing(17);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.addChangeListener(_listener);
slider.putClientProperty("JSlider.isFilled", Boolean.TRUE);
JSpinner spinner = new JSpinner(
new SpinnerNumberModel(value, MIN_VALUE, MAX_VALUE, 1));
spinner.setName("color-chooser-rgb-spinner-" + name);
spinner.addChangeListener(_listener);

_rgbaSliders[row] = slider;
_rgbaSpinners[row] = spinner;

// widgets und panel
Insets insets = new Insets(2, 2, 2, 2);
GridBagConstraints constraints = new GridBagConstraints(0, row, 1, 1,
0.0, 0.0,
GridBagConstraints.WEST,
GridBagConstraints.HORIZONTAL,
insets,
0, 0);
add(rowLabel, constraints);
constraints.gridx = 2;
add(spinner, constraints);
constraints.gridx = 1;
constraints.weightx = 1.0;
add(slider, constraints);
}

// CSON

public void updateChooser()
{
if (!_isAdjusting)
{
_isAdjusting = true;
setColor(getColorFromModel());
_isAdjusting = false;
}
}

static protected int        getIntValue(Object key, int defaultValue)
{
Object value = UIManager.get(key);
if (value instanceof Integer)
{

return ((Integer) value).intValue();
}
if (value instanceof String)
{

// CSOFF
try
{
return Integer.parseInt((String) value);
}
catch (NumberFormatException nfe)
{

}

// CSON
}
return defaultValue;
}

private class ValueListener implements ChangeListener
{
public void stateChanged(ChangeEvent e)

{
 if (_isAdjusting)
{
return;
}
int red;
int green;
int blue;
int alpha;
if (e.getSource() instanceof JSlider)
{
red = _rgbaSliders[RED].getValue();
green = _rgbaSliders[GREEN].getValue();
blue = _rgbaSliders[BLUE].getValue();
alpha = _rgbaSliders[ALPHA].getValue();
}
else
{
red = ((Integer) _rgbaSpinners[RED].getValue()).intValue();
green = ((Integer) _rgbaSpinners[GREEN].getValue()).intValue();
blue = ((Integer) _rgbaSpinners[BLUE].getValue()).intValue();
alpha = ((Integer) _rgbaSpinners[ALPHA].getValue()).intValue();
}
ColorSelectionModel model = getColorSelectionModel();
if (model instanceof AlphaColorSelectionModel)
{
((AlphaColorSelectionModel) model).setAlpha(alpha, false);
}
model.setSelectedColor(new Color(red, green, blue));
}
}

protected void        setColor(Color newColor)
{
setColor(RED, newColor.getRed());
setColor(GREEN, newColor.getGreen());
setColor(BLUE, newColor.getBlue());
setColor(ALPHA, newColor.getAlpha());
}

protected void        setColor(int row, int value)
{
if (_rgbaSliders[row].getValue() != value)
{
_rgbaSliders[row].setValue(value);
}
if (((Integer) _rgbaSpinners[row].getValue()).intValue() != value)
{
_rgbaSpinners[row].setValue(new Integer(value));
}
}

protected final ChangeListener _listener = new ValueListener();
protected final JSlider[]      _rgbaSliders = new JSlider[NUM_CHANNELS];
protected final JSpinner[]    _rgbaSpinners = new JSpinner[NUM_CHANNELS];
private boolean                _isAdjusting = false;

static final private String  RED_NAME = "rot";
static final private String  GREEN_NAME = "grьn";
static final private String  BLUE_NAME = "blau";
static final private String  ALPHA_NAME = "alpha";
static final private int RED = 0;
static final private int GREEN = 1;
static final private int BLUE = 2;
static final private int ALPHA = 3;
static final private int NUM_CHANNELS = 4;
static final private int MIN_VALUE = 0;
static final private int MAX_VALUE = 255;
}


Buchos 20.07.2008 12:26

Ответ: помогите с кодом
 
в swing есть готовый color chooser

Lenin 05.09.2008 10:36

Re: Ответ: помогите с кодом
 
Цитата:

Сообщение от Buchos (Сообщение 1787907)
в swing есть готовый color chooser

Помоему ты путаешь!! Посмотри внимательнее на код!!


Текущее время: 22:35. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.02004 секунды с 9 запросами