Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 08:07   #11
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Диалог выбора цвета
Код:
public class SwitchColor extends javax.swing.JDialog {
    /** A return status code - returned if Cancel button has been pressed */
    public static final int RET_CANCEL = 0;
    /** A return status code - returned if OK button has been pressed */
    public static final int RET_OK = 1;

    /** Creates new form SwitchColor */
    public SwitchColor(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
    }

    public java.awt.Color getColor(){ return jColorChooser1.getColor(); }

    /** @return the return status of this dialog - one of RET_OK or RET_CANCEL */
    public int getReturnStatus() {
        return returnStatus;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        okButton = new javax.swing.JButton();
        cancelButton = new javax.swing.JButton();
        jColorChooser1 = new javax.swing.JColorChooser();

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                closeDialog(evt);
            }
        });

        okButton.setText("OK");
        okButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okButtonActionPerformed(evt);
            }
        });

        cancelButton.setText("Cancel");
        cancelButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancelButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(cancelButton))
                    .addComponent(jColorChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jColorChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(cancelButton)
                    .addComponent(okButton))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>

    private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
        doClose(RET_OK);
    }                                        

    private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
        doClose(RET_CANCEL);
    }                                            

    /** Closes the dialog */
    private void closeDialog(java.awt.event.WindowEvent evt) {                             
        doClose(RET_CANCEL);
    }                            

    private void doClose(int retStatus) {
        returnStatus = retStatus;
        setVisible(false);
        dispose();
    }

    // Variables declaration - do not modify
    private javax.swing.JButton cancelButton;
    private javax.swing.JColorChooser jColorChooser1;
    private javax.swing.JButton okButton;
    // End of variables declaration

    private int returnStatus = RET_CANCEL;
}
BleStaR вне форума Ответить с цитированием
Старый 23.12.2010, 08:10   #12
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

ну а это твоя прога с использование выше описанного и классом javax.swing.Timer (частота обновления, шрифт, и цвет работают)
Код:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.text.DateFormat;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JCheckBox;

import javax.swing.Timer;

public class myClock extends JApplet implements ActionListener {
	
	Label time;
	DateFormat timeFormat;
        Timer timer;

	int color;

	JButton	b1,b2,b3;

	TextField t1,t3;

	JCheckBox cb1 = new JCheckBox("Формат");


    @Override
public void init() {

        timer = new Timer(100, new ActionListener(){
            public void actionPerformed(ActionEvent e){
                time.setText(timeFormat.format(new Date()));
            }
        });
        timer.start();

	b1 = new JButton("Частота обновления");
        b2 = new JButton("Шрифт");
	b3 = new JButton("Цвет");
	t1 = new TextField();
	t3 = new TextField(14);

    setLayout(new FlowLayout());
    add(t1);
    add(b1);
    add(b2);
    add(t3);
    add(b3);
    add(cb1);

	b1.addActionListener(this);
	t1.addActionListener(this);
	b2.addActionListener(this);
	b3.addActionListener(this);
	t3.addActionListener(this);
	time = new Label();
	time.setAlignment(Label.CENTER);

	add(time, BorderLayout.SOUTH);
	timeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM);
        
	}
public void actionPerformed(ActionEvent e) {

    if (e.getSource()== b1){  timer.setDelay(Integer.parseInt(t1.getText()));}

    if (e.getSource() == b2){
    	FontChooser fc = new FontChooser(null);
        fc.showDialog();
        time.setFont(fc.getFont());
    }

    if (e.getSource() == b3){
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                SwitchColor dialog = new SwitchColor(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);

                if(dialog.getReturnStatus() == SwitchColor.RET_OK){
                    time.setForeground(dialog.getColor());
                }
            }
        });

        
    }

}
BleStaR вне форума Ответить с цитированием
Старый 24.12.2010, 19:21   #13
PastoriXx
Пользователь
 
Регистрация: 20.12.2009
Сообщений: 40
По умолчанию

Переписал под Graphics. Шрифты так и не понял почему все не работают(есть пример с бегущей строкой где все работает), а только три. Осталось сделать формат времени, но я как то не совсем понимаю что требуется(
Код:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.font.TextAttribute;
import java.awt.geom.AffineTransform;
import java.text.AttributedString;
import java.text.DateFormat;
import java.util.Date;
import java.util.Random;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.Timer;
import java.awt.font.FontRenderContext;

public class AppletClock extends JApplet implements ActionListener,Runnable {
	public class JMyPanel extends JPanel  {
		@Override
		public void paint(Graphics g) {
			// TODO Auto-generated method stub
	
			super.paint(g);

			g.setColor(scolor);
			g.setFont(Font.decode(sfont));
			g.drawString(time, 130, 100);
		    //Font fx = new Font((String) sfont, Font.BOLD, 444);
		}
		
		@Override
		public void paintComponents(Graphics g) {
			// TODO Auto-generated method stub
			super.paintComponents(g);
		}
		}
	
	volatile boolean running; 
	String time; 
	DateFormat timeFormat; 
	Thread timer; 
	
	int speed = 1, color;
	
	JButton
	b1,b2,b3;

	TextField
	t1;
		
	JCheckBox 
    cb1 = new JCheckBox("Формат");
	
	String sfont = "Arial";
	Color scolor = Color.BLACK;
    JPanel b,o;
	String [] allFonts = {Font.SERIF,Font.MONOSPACED,Font.SANS_SERIF};
	Color [] allColors = {Color.BLACK,Color.BLUE,Color.CYAN,Color.GREEN,Color.ORANGE,Color.RED,Color.YELLOW};

	
	public void init() {
		   //Container c = getContentPane();
		   setLayout(new BorderLayout());
		   setSize(300, 300);
		   setMinimumSize(new Dimension (300,300));
		   
		   
		   b1 = new JButton("Частота обновления"); 
		   b2 = new JButton("Шрифт");
		   b3 = new JButton("Цвет");
		   t1 = new TextField();
		   
		   b = new JPanel();
		   b.setBorder(new TitledBorder("Действия"));
		    b.add(t1);
		    b.add(b1);
		    b.add(b2);
		    b.add(b3);
		   b.setPreferredSize(new Dimension(300,100));
		   add(b,BorderLayout.NORTH);
		   
		   
		   o = new JMyPanel();
	   	   o.setBorder(new TitledBorder("Часы"));
		   o.setBackground(Color.WHITE);
		   o.setPreferredSize(new Dimension(300,300));
		   add(o);
		  
			b1.addActionListener(this);
			t1.addActionListener(this);
			b2.addActionListener(this);
			b3.addActionListener(this);

			//add(time, BorderLayout.SOUTH); 
			timeFormat = DateFormat.getTimeInstance(DateFormat.MEDIUM); 
			
		   new Timer(20,new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent e) {
				o.repaint();
			}
			   
		   }).start();
		   validate();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {

		if (e.getSource()== b1){ speed = Integer.parseInt(t1.getText());}
		if (e.getSource() == b2)
			sfont = (String)JOptionPane.showInputDialog(null,"Выбери шрифт","Изменение шрифта",JOptionPane.INFORMATION_MESSAGE,null,allFonts,allFonts[0]);		
		if (e.getSource() == b3)
			scolor = (Color)JOptionPane.showInputDialog(null,"Выбери цвет","Изменение цвета",JOptionPane.INFORMATION_MESSAGE,null,allColors,allColors[0]);
	}
	
	public void start() { 
		running = true; 
		if (timer == null) 
		{ 
			timer = new Thread(this); 
			timer.start(); 
		} 
	} 

	public void run() 
	{ 
		while(running) 
		{ 
			time = (timeFormat.format(new Date()));
			try { Thread.sleep(speed*1000); } 
			catch (InterruptedException e) {} 
		} 
		timer = null; 
	}

	public void stop() { running = false; } 

	public String[][] getParameterInfo() {	return pinfo;}
	String pinfo[][] = {
			 {"Частота", "int","Частота обновления таймера"},
			 {"Шрифт"  ,"Font",        "Используемый шрифт"},
			 {"Цвет"   ,    "",          "Применяемый цвет"},
			 {"Формат даты","",							 ""}
		 };

public String getAppletInfo() { return "Clock applet Copyright (с) 2010 by Roman Homenko ";} 
}
PastoriXx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работают кнопки управления окном Liservik Microsoft Office Word 0 08.11.2010 21:50
не работают визиблы crit Общие вопросы Delphi 12 09.06.2009 01:52
Наложение html на swf. Не работают кнопки в swf. starro_serge HTML и CSS 2 04.03.2009 12:28
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35