Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Border for JComponent


Автор: PashaOvechkin 1.5.2008, 16:21
Привет! Есть нарисованный JComponent. 
Он в приложении на картинка А. 
Необходимо из него сделать что то похожее на Б картинку.
Т.и добавить бордер - оконтовочку.
Не удалось найти как такое делается.

Спасибо!

Автор: dorogoyIV 2.5.2008, 02:29
ты чего? издеваешься?
Код

import java.awt.*;
import java.util.*;
import javax.swing.*;

public class DrawComponent extends JComponent
{
 public void paint(Graphics g)
 {
  g.fillRoundRect(10, 10, 100, 50, 20, 20);

  g.setColor(Color.green);

  g.fillRoundRect(10, 60, 100, 50, 20, 20);

  g.fillRect(10, 40, 100, 40);

  g.setColor(Color.white);
  g.drawString("0.4              Ask", 20, 30);

  g.setColor(Color.red);
  g.drawRoundRect(10, 10, 100, 100, 20, 20);
  g.drawRoundRect(11, 11, 98, 98, 20, 20);
 }

 public static void main(String [] args)
 {
  JFrame f = new JFrame();
  f.add(new DrawComponent());
  f.setBounds(100, 100, 400, 300);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}

Автор: PashaOvechkin 2.5.2008, 10:06
Алё! нет, не издеваюсь!
Спасибо.
Но впреть, если трудно лучше не отвечай! 
Со свинг и графикой никогда раньше не работал.

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

П.С Твой вопрос о чуде рекурсии был тоже классным. 9 класс в школе ;)

Автор: PashaOvechkin 2.5.2008, 10:43
а твой код можно спасти так

Код

import java.awt.*;
import java.util.*;
import javax.swing.*;
public class DrawComponent extends JComponent
{
 public void paint(Graphics g)
 {
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  g.fillRoundRect(10, 10, 100, 50, 20, 20);
  g.setColor(Color.green);
  g.fillRoundRect(10, 60, 100, 50, 20, 20);
  g.fillRect(10, 40, 100, 40);
  g.setColor(Color.white);
  g.drawString("0.4              Ask", 20, 30);
  g.setColor(Color.red);
  g.drawRoundRect(10, 10, 100, 100, 20, 20);
  g.drawRoundRect(11, 11, 98, 98, 20, 20);
 }
 public static void main(String [] args)
 {
  JFrame f = new JFrame();
  f.add(new DrawComponent());
  f.setBounds(100, 100, 400, 300);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}


Автор: dorogoyIV 2.5.2008, 13:04
 smile 
да вы батенька хам!!!

Цитата(PashaOvechkin @  2.5.2008,  10:43 Найти цитируемый пост)
а твой код можно спасти так

Код

Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

только что это тебе дает???


Цитата(PashaOvechkin @  2.5.2008,  10:06 Найти цитируемый пост)
П.С Твой вопрос о чуде рекурсии был тоже классным. 9 класс в школе ;)

такое в школе не преподают!!

Автор: PashaOvechkin 2.5.2008, 15:35
Значит я хам smile 

А что ето даёт? Попробуй и найди 10 различий ;)

Автор: powerOn 3.5.2008, 11:53

 ! 
powerOn
Господа, давайте жить дружно. Тема закрыта.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)