public void tweet() { String textAreaText = textArea.getText(); String textFieldText = textField.getText(); Thread t = new Thread( new Runnable() { @Override public void run() { StatusUpdate status; if (backgroundImagePath != null) { String path; if (!is16_9 && convert.isSelected()) path = getConverted16_9ImagePath(); else path = backgroundImagePath; clear(); status = new StatusUpdate(textAreaText + " " + textFieldText); status.media(new File(path)); } else { clear(); status = new StatusUpdate(textAreaText + " " + textFieldText); } try { twitter.updateStatus(status); } catch (TwitterException e) { JOptionPane.showMessageDialog(Captter.this, "ツイートできませんでした"); return; } } public void clear() { textArea.setText(""); textArea.requestFocus(); imageField.setText(""); imageField.setIcon(null); backgroundImagePath = null; backgroundImageName = null; } }); t.start(); }
/** Create the frame. */ public Captter() { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); SwingUtilities.updateComponentTreeUI(this); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e1) { } setAlwaysOnTop(true); setTitle("Captter created by tao"); Config config = new Config(); config.loadTwitter(); config.loadConfig(); String[] twitterAccess = config.getTwitter(); String CK = twitterAccess[0]; String CS = twitterAccess[1]; String AT = twitterAccess[2]; String ATS = twitterAccess[3]; Configuration jconf = new ConfigurationBuilder().setOAuthConsumerKey(CK).setOAuthConsumerSecret(CS).build(); AccessToken token = new AccessToken(AT, ATS); twitter = new TwitterFactory(jconf).getInstance(token); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(120, 120, 420, 240); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); tweet = new JButton("Tweet(Ctrl+Enter)"); tweet.setBounds(260, 168, 140, 30); tweet.addActionListener(this); contentPane.add(tweet); textArea.setBounds(0, 0, 400, 130); textArea.setFont(new Font("メイリオ", Font.BOLD, 20)); textArea.setLineWrap(true); contentPane.add(textArea); textField = new HintTextField(); textField.setBounds(0, 140, 400, 28); textField.setFont(new Font("メイリオ", Font.PLAIN, 12)); textField.setHint("固定テキスト"); contentPane.add(textField); JSeparator separator = new JSeparator(); separator.setBounds(0, 130, 400, 10); contentPane.add(separator); imageField = new JLabel(""); imageField.setBounds(0, 0, 400, 130); contentPane.add(imageField); settings = new JButton("設定"); settings.setBounds(0, 169, 70, 30); settings.addActionListener(this); contentPane.add(settings); convert = new JCheckBox("convert 16:9"); convert.setSelected(true); convert.setBounds(70, 170, 111, 23); contentPane.add(convert); Quick = new JCheckBox("Quick"); Quick.setBounds(185, 170, 70, 23); contentPane.add(Quick); textArea.addKeyListener( new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { keyPress(e); } }); addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { Config config = new Config(); config.loadConfig(); boolean[] removes = config.getRemoves(); if (removes[0]) { File convertedDir = new File( new File(System.getProperty("java.class.path")).getParent() + "/converted/"); String conDirPath = convertedDir.getPath(); String[] convertedFiles = convertedDir.list(); for (String s : convertedFiles) { if (s.endsWith(".png")) new File(conDirPath + "/" + s).delete(); } } if (removes[1]) { File captureDir = new File(config.getTargetDir()); String capDirPath = captureDir.getPath(); String[] captureFiles = captureDir.list(); for (String s : captureFiles) { if (s.endsWith(".jpg") || s.endsWith(".png") || s.endsWith(".bmp")) new File(capDirPath + "/" + s).delete(); } } } }); AutoChecker ac = new AutoChecker(new File(config.getTargetDir())); ac.start(new File(config.getTargetDir())); }