![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Guest
Сообщений: n/a
|
нужна помощ, не получается написать код
вот что надо зделать: ![]() С 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;
}
Последний раз редактировалось evrei; 03.11.2007 в 15:26.. |
|
| Реклама: |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 15.03.2007
Сообщений: 11
Репутация: 1
|
в swing есть готовый color chooser
|
|
|
|
|
|
#3
|
|
Неактивный пользователь
Регистрация: 05.09.2008
Сообщений: 3
Репутация: 0
|
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| ПОМОГИТЕ С КОДОМ плиз! | mdk | PHP | 5 | 14.03.2010 00:10 |
| Помогите с компонентами или кодом для PARADOX | clear2121 | Borland C++ Builder | 0 | 08.01.2010 17:20 |
| Помогите с кодом, цвет ссылки | ArtG | Вeб Дизайн | 8 | 30.01.2008 11:21 |
| Помогите с регистрационным кодом для программы FastStone Capture 5,5 | Konstantin71 | Архив | 2 | 18.06.2007 17:31 |
| помогите с кодом | armag | Вeб Дизайн | 49 | 17.12.2006 22:39 |
|
|