내 프로젝트의 경우 사용자 지정 단추를 만들어야합니다. 나는 문제가 있고 그것을 해결하는 방법을 모른다. 내 단추에 대한 배경 이미지가 있으며 품질 저하없이 끝날 텍스트에 따라 X 및 Y로 확장 가능해야합니다. 아이디어가 있으십니까?자바에서 디자인 단추 (CSS에서와 같이)
1
A
답변
5
스윙 플러그 봐 ComponentUI
에 의해 그 위젯의 모양을 변경할 수 있습니다 & 느낌이있다. 귀하의 버튼에 대한
예 : 테스트를위한
class StyledButtonUI extends BasicButtonUI {
@Override
public void installUI (JComponent c) {
super.installUI(c);
AbstractButton button = (AbstractButton) c;
button.setOpaque(false);
button.setBorder(new EmptyBorder(5, 15, 5, 15));
}
@Override
public void paint (Graphics g, JComponent c) {
AbstractButton b = (AbstractButton) c;
paintBackground(g, b, b.getModel().isPressed() ? 2 : 0);
super.paint(g, c);
}
private void paintBackground (Graphics g, JComponent c, int yOffset) {
Dimension size = c.getSize();
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(c.getBackground().darker());
g.fillRoundRect(0, yOffset, size.width, size.height - yOffset, 10, 10);
g.setColor(c.getBackground());
g.fillRoundRect(0, yOffset, size.width, size.height + yOffset - 5, 10, 10);
}
}
홈페이지 방법 :
public static void main (String[] args) {
JFrame f = new JFrame("Button UI Test");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JPanel p = new JPanel();
p.setBackground(Color.white);
f.setContentPane(p);
p.setLayout(new FlowLayout(5, 5));
p.setBorder(new EmptyBorder(10, 10, 10, 10));
for (int i = 1; i <= 5; i++) {
final JButton button = new JButton("Button #" + i);
button.setFont(new Font("Calibri", Font.PLAIN, 14));
button.setBackground(new Color(0x2dce98));
button.setForeground(Color.white);
// customize the button with your own look
button.setUI(new StyledButtonUI());
p.add(button);
}
f.pack();
f.setLocation(500, 500);
f.setVisible(true);
}
+1
정말 고맙습니다. 당신은 내 문제를 가능한 한 가장 단순하게 해결했습니다. 다시, 고마워요 :) 죄수로, 어떻게이 [디자인] (http://speckycdn.sdm.netdna-cdn.com/wp-content/uploads/2012/)과 같이 더 정교하게 같은 일을 할 수 있습니까? 01/preview640.jpg)? – TheNawaKer
1
당신은 이미지를 확장하고 이미지 아이콘을 생성 할 수 있습니다. 이런 식으로 뭔가 : (하십시오 ButtonUI
이 경우)
ImageIcon icon = new ImageIcon("img.png");
Image scaledImg = icon.getImage().getScaledInstance(newWidth, newHeight, java.awt.Image.SCALE_SMOOTH);
icon = new ImageIcon(scaledImg);
JButton button = new JButton(icon);
button.setHorizontalTextPosition(JButton.CENTER);
button.setVerticalTextPosition(JButton.CENTER);
관련 문제
- 1. 편집 단추 디자인
- 2. ? (자바에서 구아바와 같이)
- 3. LuaJ 자바에서 다음과 같이
- 4. 자바에서 3D 디자인 사용
- 5. 자바에서 디자인 패턴 이해하기
- 6. 명령 단추 위치 - UI 디자인
- 7. .net 특수 단추 디자인 컨트롤
- 8. 파이썬에서와 같이 자바에서 함수 인스턴스화하기
- 9. 디자인 타임에서 WPF 레이블, 단추 등으로 바인딩?
- 10. 자바에서 다양한 유형과 전략을위한 디자인 API
- 11. 자바에서 간단한 사용자 환경 설정 객체의 디자인?
- 12. 자바에서 사용자 정의 필터를 캡슐화하기위한 디자인 패턴
- 13. 권장 디자인 패턴 (들)을 다음과 같이
- 14. OO는 CSS에서와 유사합니다 : 상속이 가능합니까? 나는 간단한 테두리 스타일을
- 15. Qt 디자인 단추 및 LCD 번호가 포함 된 Python 타이머
- 16. .NET 양식 디자인 - 단추 그룹 "Photoshop 도구 스타일"
- 17. 디자인 모드에서 양식 닫기 단추 및 탭 이름이 누락되었습니다.
- 18. GWT : 단추/디자인 단추를 설정하는 가장 좋은 방법은 무엇입니까?
- 19. 다음과 같이 나는 현재 자바에서 파일에 XML 문서를 출력하고 자바
- 20. Java에서와 같이 Oracle에서 arraysize를 정의하는 방법은 무엇입니까? 자바에서
- 21. 세로 단추 단추 너비
- 22. 코코아 해상도 독립 단추 그래픽
- 23. 디자인 패턴은 자바에서 가능한 디자인 패턴 방식의 입력을 알고 싶어 객체와 값 쌍
- 24. ribbbon의 단추 아이콘 변경
- 25. 다음과 같이 내가 디자인 페이지에서 드롭 다운 목록을
- 26. 어떻게 디자인 왼쪽 메뉴 패널 I는 다음과 같이 왼쪽 바 메뉴를 디자인 할 WPF 창에서
- 27. 자바에서 텍스트 스크롤
- 28. 검도 단추 단추 클릭 인수
- 29. Windows Form 단추 호출 단추
- 30. 클래스 디자인
당신은 자바 FX CSS의 문서에 눈 http://docs.oracle를 제공해야합니다. com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html – diegoaguilar