Я хотел бы иметь некоторые элементы управления в приложении - Button
s и Label
s - вертикально ориентированный -. Однако я не мог найти возможности для этого. Даже непубличный метод setOrientation решает только ориентацию слева направо. Возможно ли это, если вы не внесете заказ в личный кабинет Button
или связаны с кодом Canvas
?Возможно ли иметь вертикальные элементы управления SWT?
ответ
Насколько я знаю, вертикальная ориентация кнопки и метки невозможна. Для этого вам необходимо предоставить пользовательскую реализацию. Проверьте эту ссылку http://dev.eclipse.org/newslists/news.eclipse.platform.swt/msg30094.html
его позор, но плохо сделал это сам :(может быть, e4 улучшится на этом – kostja
@kostja - e4 по-прежнему будет использовать SWT и собственные элементы управления. Пока эти нативные элементы управления не обеспечивают вертикальную ориентацию или какой-либо поворот элементов управления или компонентов, нет никакого другого, кроме полного управления на основе Java (например, Swing) –
SWT использует стандартные виджеты, предоставляемые операционной системой хоста. Поэтому, если операционная система не поддерживает вертикально ориентированные элементы управления, SWT также не может ее предоставить.
Да возможно в SWT
с использованием пользовательского виджета. Вам нужно зарегистрироваться Button
/Label
. В поле PaintListener
получите объект Transform
и поверните текст под нужным углом. В примере для каждого щелчка измените угол на эту последовательность 0,90,180,270. button
(здесь фактически Canvas
) соотношение сторон изменяется путем установки bounds
. Не стесняйтесь играть с методом paint
;
public class RotatingButton extends Canvas
{
private int mouse = 0;
private boolean hit = false;
private String text = "Button";
float rotatingAngle = 0f;
float[] angles = { 0, 90, 180, 270 };
int index = 0;
public RotatingButton(Composite parent, int style)
{
super(parent, style);
this.addListener(SWT.MouseUp, new Listener()
{
@Override
public void handleEvent(Event e)
{
index++;
index = index > 3 ? 0 : index;
Rectangle r = getBounds();
setBounds(r.x, r.y, r.height, r.width);
rotatingAngle = angles[index];
redraw();
}
});
this.addPaintListener(new PaintListener()
{
public void paintControl(PaintEvent e)
{
paint(e);
}
});
this.addMouseMoveListener(new MouseMoveListener()
{
public void mouseMove(MouseEvent e)
{
if (!hit)
return;
mouse = 2;
if (e.x < 0 || e.y < 0 || e.x > getBounds().width
|| e.y > getBounds().height)
{
mouse = 0;
}
redraw();
}
});
this.addMouseTrackListener(new MouseTrackAdapter()
{
public void mouseEnter(MouseEvent e)
{
mouse = 1;
redraw();
}
public void mouseExit(MouseEvent e)
{
mouse = 0;
redraw();
}
});
this.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
hit = true;
mouse = 2;
redraw();
}
public void mouseUp(MouseEvent e)
{
hit = false;
mouse = 1;
if (e.x < 0 || e.y < 0 || e.x > getBounds().width
|| e.y > getBounds().height)
{
mouse = 0;
}
redraw();
if (mouse == 1)
notifyListeners(SWT.Selection, new Event());
}
});
this.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if (e.keyCode == '\r' || e.character == ' ')
{
Event event = new Event();
notifyListeners(SWT.Selection, event);
}
}
});
}
public void setText(String string)
{
this.text = string;
redraw();
}
public void paint(PaintEvent e)
{
Transform tr = null;
tr = new Transform(e.display);
Rectangle r =getBounds();
text=e.gc.stringExtent(text)+"";
e.gc.setAntialias(SWT.ON);
Point p=e.gc.stringExtent(text);
int w = e.width;
int h = e.height;
tr.translate(w/2, h/2);
tr.rotate(rotatingAngle);
e.gc.setTransform(tr);
e.gc.drawString(text, r.x-(p.x/3)*2,r.y-p.y);
}
}
- 1. Возможно ли иметь вложенные пользовательские элементы управления в XAML
- 2. Угловой материал mdTabs: возможно ли иметь вертикальные язычки?
- 3. Возможно ли иметь несколько кнопок управления. Tag
- 4. Возможно ли иметь массив как элементы массива?
- 5. SWT Элементы управления с предопределенными стилями
- 6. Возможно ли обновлять элементы управления вне UpdatePanel?
- 7. Возможно ли иметь общий делегат?
- 8. Возможно ли иметь другие UIControls в UITableView?
- 9. Возможно ли реализовать вертикальные вкладки с использованием richfaces?
- 10. Возможно ли иметь собственный скруббер для MPMoviePlayercontroller
- 11. Абсолютные вертикальные центрирующие элементы
- 12. Возможно ли иметь выбор в базовых настройках настраиваемого элемента управления
- 13. R Листовка: Возможно ли иметь панель управления с двумя колонками?
- 14. Возможно ли иметь разные элементы макета внутри CollapsingToolbarLayout?
- 15. Возможно ли иметь элементы xml, ссылающиеся друг на друга?
- 16. Возможно ли иметь QMaemo5ListPickSelector, который отображает изображения как элементы?
- 17. Группа горизонтальные элементы формы вертикальные
- 18. Вертикальные выровнять абсолютные элементы/Flexbox
- 19. SWT Tree - Возможно ли уменьшение значка расширения?
- 20. Возможно ли реализовать NSSegmentedControl с SWT?
- 21. Возможно ли установить верхний флажок в SWT
- 22. Могут ли элементы управления Orbeon иметь несколько значений?
- 23. Возможно ли иметь вложенный ko.utils.arrayFilter?
- 24. Возможно ли иметь анимированный QSystemTrayIcon?
- 25. Возможно ли иметь предваряющий надзор?
- 26. Возможно ли иметь частный класс?
- 27. Возможно ли иметь частный класс?
- 28. Возможно ли иметь активность START_STICKY?
- 29. Возможно ли иметь два curl_init
- 30. Возможно ли иметь анимированный чертеж?
Теперь вы можете сделать это. Взгляните на http://stackoverflow.com/q/8091920/796559 –
@Tonny Спасибо, это резонный обход – kostja