суббота, 19 мая 2018 г.

Fx options combo


Liberação: JavaFX 2.2 Usando controles de UI do JavaFX 14 Caixa de combinação Este capítulo explica como usar caixas de combinação em seu aplicativo JavaFX. Discute caixas de combinação editáveis ​​e não editáveis, ensina como controlar as alterações nas caixas de combinação editáveis ​​e manipular eventos nelas e explica como usar fábricas de célula para alterar a implementação padrão de uma caixa de combinação. Uma caixa de combinação é um elemento típico de uma interface de usuário que permite aos usuários escolher uma das várias opções. Uma caixa de combinação é útil quando o número de itens a serem exibidos excede algum limite, porque pode adicionar rolagem à lista suspensa, ao contrário de uma caixa de opções. Se o número de itens não exceder um certo limite, os desenvolvedores podem decidir se uma caixa de combinação ou uma caixa de opções melhor atende às suas necessidades. Você pode criar uma caixa de combinação no aplicativo JavaFX usando a classe ComboBox da API do JavaFX. A Figura 14-1 mostra um aplicativo com duas caixas de combinação. Figura 14-1 Aplicação com duas caixas de combinação Descrição da Figura 14-1 Aplicação com duas caixas de combinação Criando caixas de combinação Ao criar uma caixa de combinação, você deve instanciar a classe ComboBox e definir os itens como uma lista observável, assim como outros controles de interface do usuário. como ChoiceBox. Exibição de lista. e TableView. O exemplo 14-1 define os itens dentro de um construtor. Exemplo 14-1 Criando uma caixa de combinação com uma lista observável Outra possibilidade é criar uma caixa de combinação usando um construtor vazio e chamar o método setItems, da seguinte forma: comboBox. setItems (options) Quando a caixa de combinação é adicionada ao cena da aplicação, ela aparece na interface do usuário, conforme mostrado na Figura 14-2. Figura 14-2 Caixa de Combinação com Três Itens Descrição da Figura 14-2 Caixa de Combinação com Três Itens A qualquer momento, você pode suplementar a lista de itens com novos valores. O Exemplo 14-2 implementa essa tarefa adicionando mais três itens ao controle comboBox. Exemplo 14-2 Adicionando itens a uma caixa de combinação A classe ComboBox fornece propriedades e métodos úteis para usar com caixas de combinação. Você pode usar o método setValue para especificar o item selecionado na caixa de combinação. Quando você chama o método setValue no objeto ComboBox, o item selecionado da propriedade selectionModel é alterado para esse valor, mesmo que o valor não esteja na lista de itens da caixa de combinação. Se a lista de itens for alterada para incluir esse valor, o item correspondente será selecionado. Da mesma forma, você pode obter o valor do item selecionado chamando o método getValue. Quando um usuário seleciona um item, o item selecionado da propriedade selectionModel e a propriedade de valor da caixa de combinação são atualizados para o novo valor. Você também pode restringir o número de linhas visíveis na lista suspensa ComboBox quando ele é exibido. A linha de código a seguir permite a exibição de três itens para o controle comboBox: comboBox. setVisibleRowCount (3) Como resultado da chamada desse método, o número de linhas visíveis é limitado a três e uma barra de rolagem é exibida (conforme mostrado na Figura 14). -3). Figura 14-3 Definindo o número de linhas visíveis para uma caixa de combinação Descrição da Figura 14-3 Definindo o número de linhas visíveis para uma caixa de combinação Embora a classe ComboBox tenha uma notação genérica e permita que os usuários a preencham com itens de vários tipos, não use Node (ou qualquer subclasse) como o tipo. Como o conceito de gráfico de cena indica que apenas um objeto Node pode estar em um local da cena do aplicativo, o item selecionado é removido da lista de itens do ComboBox. Quando a seleção é alterada, o item selecionado anteriormente retorna à lista e a nova seleção é removida. Para evitar essa situação, use o mecanismo da fábrica de células e a solução descrita na documentação da API. O mecanismo de fábrica de células é particularmente útil quando você precisa alterar o comportamento inicial ou a aparência do objeto ComboBox. O aplicativo ComboBoxSample é projetado para ilustrar como usar caixas de combinação em uma interface de email típica. O Exemplo 14-3 cria uma interface desse tipo, na qual duas caixas de combinação são usadas para selecionar o destinatário do email e a prioridade da mensagem. Exemplo 14-3 Criando Caixas de Combinação e Adicionando-as à Cena Ambas as caixas de combinação no Exemplo 14-3 usam os métodos getItems e addAll para adicionar itens. Quando você compila e executa este código, ele produz a janela do aplicativo mostrada na Figura 14-4. Figura 14-4 Caixas de combinação Destinatário de email e prioridade Descrição da Figura 14-4 Caixas de combinação de destinatário e prioridade de email Normalmente, os aplicativos cliente de email permitem que os usuários selecionem os destinatários no catálogo de endereços e digitam um novo endereço. Uma caixa de combinação editável se encaixa perfeitamente nessa tarefa. Use o método setEditable (true) da classe ComboBox para tornar uma caixa de combinação editável. Com o método setPromptText, você pode especificar o texto a ser exibido na área de edição da caixa de combinação quando nenhuma seleção for executada. Examine o código modificado do aplicativo no Exemplo 14-4. As linhas em negrito são as adições feitas ao Exemplo 14-3. Exemplo 14-4 Processamento de valores recém-digitados em uma caixa de combinação editável Além da capacidade de editar o emailComboBox. Este fragmento de código implementa manipulação de eventos para este controle. O valor recém-digitado ou selecionado é armazenado na variável de endereço. Quando os usuários pressionam o botão Enviar, a notificação contendo o endereço de e-mail é mostrada. A Figura 14-5 captura o momento em que um usuário está editando o endereço de email de Jacob Smith e alterando-o para greg. smithexample. Figura 14-5 Editando um endereço de e-mail Descrição da Figura 14-5 Editando um endereço de e-mail Quando o botão Enviar é pressionado, todos os controles retornam aos seus estados padrão. Os métodos claros são chamados nos objetos TextField e TextArea e o valor nulo é definido para os itens selecionados da caixa de combinação. A Figura 14-6 mostra o momento após o botão Enviar ser pressionado. Figura 14-6 Interface do usuário após o pressionamento do botão Enviar Descrição da Figura 14-6 Interface do usuário após o pressionamento do botão Enviar Aplicando Fábricas de Células às Caixas de Combinação Você pode usar o mecanismo da fábrica de células para alterar o comportamento padrão ou a aparência de uma caixa de combinação . O Exemplo 14-5 cria uma fábrica de células e a aplica à caixa de combinação de prioridades para destacar os tipos de prioridade com cores especiais. Exemplo 14-5 Implementando uma fábrica de células para a caixa de combinação de prioridades A fábrica de células produz objetos ListCell. Cada célula está associada a um único item de caixa de combinação. A largura de cada item de caixa de combinação é definida através do método setPrefWidth. O método updateItem define a cor vermelha para os itens High e Highest, green color para os itens Low e Lowest, e deixa o item Normal em preto. A Figura 14-7 mostra os itens da caixa de combinação de prioridades após a fábrica de células no Exemplo 14-5 ser aplicada. Figura 14-7 Modificação da caixa de combinação de prioridades Descrição da Figura 14-7 Modificação da caixa de combinação de prioridades É possível aprimorar ainda mais a aparência do controle ComboBox aplicando estilos CSS ou efeitos visuais. Related API DocumentationClass ComboBoxltTgt Uma implementação da classe abstrata ComboBoxBase para a forma mais comum de ComboBox, onde uma lista pop-up é mostrada para os usuários, fornecendo-lhes uma escolha da qual podem selecionar. Para obter mais informações sobre os conceitos gerais e a API do ComboBox, consulte a documentação da classe ComboBoxBase. No topo do ComboBoxBase, a classe ComboBox introduz API adicional. Mais importante ainda, ele adiciona uma propriedade de itens que funciona da mesma maneira que a propriedade de itens ListView. Em outras palavras, é o conteúdo da lista de itens que é exibida aos usuários quando eles clicam no botão ComboBox. Por padrão, quando a lista pop-up está sendo exibida, o número máximo de linhas visíveis é 10, mas isso pode ser alterado modificando-se a propriedade visibleRowCount. Se o número de itens na ComboBox for menor que o valor de visibleRowCount. Em seguida, o tamanho dos itens será usado em vez disso, para que a lista pop-up não seja muito longa. Assim como no ListView, é possível modificar o modelo de seleção usado, embora isso provavelmente seja raramente alterado. Isso ocorre porque o ComboBox impõe a necessidade de uma instância SingleSelectionModel, e não é provável que haja muita necessidade de implementações alternativas. No entanto, a opção é que deve haver casos de uso para alternar o modelo de seleção. Como a ComboBox processa internamente o conteúdo com um ListView, a API existe na classe ComboBox para permitir que uma fábrica de células personalizada seja definida. Para mais informações sobre fábricas de células, consulte as classes Cell e ListCell. É importante observar que, se uma fábrica de células estiver definida em uma caixa de combinação, as células só serão usadas no ListView que mostra quando o ComboBox é clicado. Se você também quiser personalizar a renderização da área de botões da ComboBox, poderá definir uma ocorrência personalizada de ListCell na propriedade da célula do botão. Uma maneira de fazer isso é com o seguinte código (observe o uso de setButtonCell. Como uma ComboBox pode ser editável. E o meio padrão de permitir a entrada do usuário é via TextField., Uma propriedade de conversor de strings é fornecida para permitir aos desenvolvedores especificar como para traduzir uma cadeia de usuários em um objeto do tipo T, de tal forma que a propriedade value possa contê-lo. Por padrão, o conversor simplesmente retorna a entrada String como o usuário o digitou, o que pressupõe que o tipo da ComboBox editável seja String. um tipo diferente é especificado e o ComboBox deve ser editável, é necessário especificar um StringConverter personalizado Um aviso sobre a inserção de Nodes na lista de itens do ComboBox ComboBox permite que a lista de itens contenha elementos de qualquer tipo, incluindo instâncias do Node. Os nós na lista de itens não são altamente recomendados, pois a fábrica de células padrão simplesmente insere os itens do Nó diretamente na célula, incluindo também na área do botão ComboBox. O scenegraph permite que os Nodes estejam em um lugar por vez, o que significa que quando um item é selecionado, ele é removido da lista ComboBox e se torna visível na área do botão. Quando a seleção muda, o item selecionado anteriormente retorna à lista e a nova seleção é removida. A abordagem recomendada, em vez de inserir instâncias do Nó na lista de itens, é colocar as informações relevantes no ComboBox e fornecer uma fábrica de células personalizada. Por exemplo, em vez de usar o seguinte código: Você deve fazer o seguinte: Reconhecidamente, a abordagem acima é muito mais detalhada, mas oferece a funcionalidade necessária sem encontrar as restrições do cenário. Resumo da propriedadeO que é um straddle Um straddle é uma estratégia de opções na qual o investidor mantém uma posição em uma chamada e coloca com o mesmo preço de exercício e data de vencimento. pagando ambos os prêmios. Essa estratégia permite que o investidor lucre, independentemente de o preço do título subir ou descer, supondo que o preço das ações sofra alguma alteração significativa. Carregando o jogador. Descontar Straddle Straddles é uma boa estratégia para perseguir se um investidor acreditar que um preço de ações irá se mover significativamente, mas não tem certeza sobre qual direção. Assim, esta é uma estratégia neutra, já que o investidor é indiferente se a ação sobe ou desce, desde que o preço se mova o suficiente para a estratégia obter lucro. Mecânica e características do Straddle A chave para criar uma posição longa em straddle é comprar uma opção de compra e uma opção de venda. Ambas as opções devem ter o mesmo preço de exercício e data de vencimento. Se os preços de exercício não correspondentes forem comprados, a posição será considerada um estrangulamento, não um straddle. As posições longas do straddle têm lucro ilimitado e risco limitado. Se o preço do ativo subjacente continuar a aumentar, o lucro potencial é ilimitado. Se o preço do ativo subjacente for zero, o lucro seria o preço de exercício menos os prêmios pagos pelas opções. Em ambos os casos, o risco máximo é o custo total para inserir a posição, que é o preço da opção de compra mais o preço da opção de venda. O lucro quando o preço do ativo subjacente está aumentando é dado por: Lucro (acima) Preço do ativo subjacente - o preço de exercício da opção de compra - prêmio líquido pago O lucro quando o preço do ativo subjacente está diminuindo é dado por : Lucro (para baixo) Preço de exercício da opção de venda - preço do ativo subjacente - prêmio líquido pago A perda máxima é o prêmio líquido total pago mais quaisquer comissões de negociação. Essa perda ocorre quando o preço do ativo subjacente é igual ao preço de exercício das opções na expiração. Existem dois pontos de equilíbrio em uma posição de straddle. O primeiro, conhecido como o ponto de equilíbrio superior, é igual ao preço de exercício da opção de compra mais o prêmio líquido pago. O segundo, o menor ponto de equilíbrio, é igual ao preço de exercício da opção de venda menos o prêmio pago. Exemplo de Straddle Uma ação tem o preço de 50 por ação. Uma opção de compra com um preço de exercício de 50 tem o preço de 3, e uma opção de venda com o mesmo preço de exercício também é precificada em 3. Um investidor entra em um straddle comprando uma de cada opção. A posição lucrará no vencimento se o preço da ação estiver acima de 56 ou abaixo de 44. A perda máxima de 6 ocorrerá se o estoque permanecer com o preço de 50 no vencimento. Por exemplo, se o preço da ação for 65, a posição seria lucrativa: Lucro 65 - 50 - 6 9

Комментариев нет:

Отправить комментарий