Pergunta

Eu sempre quis criar componentes personalizados em Java, ou personalizar os existentes, mas minhas pesquisas não resultou em nada de útil. Então eu decidi pedir à comunidade StackOverflow:

Onde posso encontrar informações sobre como personalizar Java GUI Components em geral?

E quando eu personalização dizer, eu não estou falando de cores variáveis, fontes etc. Quero dizer realmente personalizá-los. Aqui estão dois componentes exemplo maquete:

componentes personalizados Maquete

Notas
Comecei a esta questão, principalmente, para encontrar como criar os dois componentes personalizados acima. Mas então eu percebi que não é uma questão geral sobre hacking componentes swing. Então eu pensei que seria melhor ter uma lista de recursos.

No caso de você está querendo saber como fazer os dois componentes no trabalho mockup, aqui está:

A JScrollPane que tem duas barras de rolagem para cada orientação personalizada. Cada barra de rolagem pode agir de forma diferente. Por exemplo, os exteriores deslocar normalmente e as interiores mover a vista em uma Picasa -like maneira mais. Na verdade, eu tenho um trabalho (!) Resposta do Google Groups aqui , mas isso foi apenas código.

O segundo é um costume JComboBox que, quando a lista pop-up é expandida, tem um JComponent no final. Isso pode ser qualquer coisa, de um JLabel simples com um ícone, a um JButton que manipula a lista de uma forma.

Mas esta questão não é sobre esses componentes específicos. É sobre encontrar recursos (sites, livros, artigos etc.) para saber como criá-los .

Foi útil?

Solução

Este artigo, Como escrever um balanço componente personalizado deve ser realmente útil. Abrange replicar um controle deslizante Windows que tenha ambos os passos discretos e uma faixa contínua.

Outras dicas

O JDK é open source. Para entender como você escrever um componente Swing, não há lugar melhor para se olhar do que a fonte de componentes Swing. Em geral, quando você criar componentes personalizados, você está interessado em um ou mais dos seguintes: {semântica interação, representação visual, estrutura de composição}

Comece com os casos mais simples:

componentes passivos: JLabel
componentes interativos: JButton

JLabel irá demonstrar a extensão barebones de JComponent para desenho personalizado de um componente; neste caso, é desenhar o valor da cadeia 'texto' como a sua representação.

JButton irá demonstrar a extensão barebones para interacção do utilizador, além de desenho do componente.

Filthy Rich é uma excelente, livro muito legível sobre este tema. É mais sobre como melhorar a aparência de componentes Swing do que criar inteiramente novos, mas não entrar nas entranhas do Swing e fornece uma série de exemplos práticos.

Esta é uma pergunta muito aberta, a resposta simples curta é que você subclasse JComponent ou um de seus descendentes e adicionar a funcionalidade que você precisa. Obviamente, dependendo do que você está querendo fazer isso pode variar em dificuldade. Para os iniciantes eu recomendo que você leia da Sun tutorial sobre o uso de componentes Swing , onde há exemplos de como usar rolagem painéis e pop-up menus . Depois de ter lido através daqueles e experimentou que você pode ter mais perguntas específicas que será mais fácil para as pessoas a dar respostas consideradas.

Se os dois componentes em seu até simulada são tudo que você está querendo implementar em seguida, dando-nos alguma idéia melhor de como você quer que eles função irá produzir melhores respostas.

Leia balanço Hacks: Dicas e ferramentas para construção assassino GUIs (Marinacci, Adamson) . IMHO um livro essencial para trabalhar de forma eficaz com balanço em geral.

Pessoalmente eu encontrar as respostas acima demasiado gerais ou vagos. Além disso, como alguém é, inevitavelmente, vai topar esta discussão assim como eu fiz, assim como eu poderia fornecer o que eu encontrei:

Espero que isso ajude ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top