1
Aprender a programar desde cero / JAVA programa conversión temperatura grados centígrados a farenheit scrollbar
« en: 28 de Octubre 2017, 08:47 »
Buenas este es de mis primeros ejercicios con interfaz grafica en Java.
Se trata de una ventana donde hay un scrollbar y dos cajas de texto, una para la temperatura en grados centígrados y otra para la temperatura en grados farenheit. La idea es que al ir el scrollbar hacia la derecha suban los valores y al ir hacia la izquierda bajen los valores. Pero no consigo hacer que el scrollbar me disminuya las temperaturas, siempre me va aumentado el valor tanto si voy hacia la izquierda como si voy hacia la derecha ¿Alguna sugere a? Gracias!!!![Gui�ar ;)](https://aprenderaprogramar.com/foros/Smileys/default/wink.gif)
Se trata de una ventana donde hay un scrollbar y dos cajas de texto, una para la temperatura en grados centígrados y otra para la temperatura en grados farenheit. La idea es que al ir el scrollbar hacia la derecha suban los valores y al ir hacia la izquierda bajen los valores. Pero no consigo hacer que el scrollbar me disminuya las temperaturas, siempre me va aumentado el valor tanto si voy hacia la izquierda como si voy hacia la derecha ¿Alguna sugere a? Gracias!!!
![Gui�ar ;)](https://aprenderaprogramar.com/foros/Smileys/default/wink.gif)
Código: [Seleccionar]
package temperatura;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JTextArea;
import java.awt.SystemColor;
import javax.swing.JTextField;
import javax.swing.JScrollBar;
import javax.swing.JTextPane;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JSlider;
import javax.swing.JEditorPane;
import java.awt.TextField;
import java.awt.Color;
import java.awt.Event;
import javax.swing.JPanel;
import javax.swing.border.CompoundBorder;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.AdjustmentEvent;
import java.awt.Cursor;
import java.awt.ComponentOrientation;
public class temperatura {
private JFrame frmTemperatura;
private JTextField textField_gcent;
private JTextField textField_far;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
temperatura window = new temperatura();
window.frmTemperatura.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public temperatura() {
initialize();
}
int grados, farenheit,resultado, count,i;
private JScrollBar temperatura;
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmTemperatura = new JFrame();
frmTemperatura.setTitle("Temperatura");
frmTemperatura.setBounds(100, 100, 451, 366);
frmTemperatura.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
temperatura = new JScrollBar();
temperatura.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
temperatura.setValueIsAdjusting(true);
temperatura.setMinimum(-100);
temperatura.addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent arg0) {
textField_gcent.setText(String.valueOf(grados++));
temperatura.getValue();
double farenheit=grados*2-grados/5;
farenheit=farenheit+32;
textField_far.setText(String.valueOf(farenheit));
}
});
temperatura.addMouseWheelListener(new MouseWheelListener() {
public void mouseWheelMoved(MouseWheelEvent arg0) {
grados = temperatura.getValue();
double farenheit=grados*2-grados/5;
farenheit=farenheit+32;
}
});
temperatura.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
textField_gcent.setText(String.valueOf(grados));
double farenheit=grados*2-grados/5;
farenheit=farenheit+32;
textField_far.setText(String.valueOf(farenheit));
}
});
temperatura.setOrientation(JScrollBar.HORIZONTAL);
JLabel lblMenu = new JLabel("Men\u00FA");
JLabel lbltitulocentigrados = new JLabel("Grados Centigrados");
JLabel lblGradosFah = new JLabel("Grados Fahrenheit");
JPanel panel = new JPanel();
panel.setBorder(new CompoundBorder());
textField_gcent = new JTextField();
textField_gcent.setEnabled(false);
textField_gcent.setEditable(false);
textField_gcent.setBackground(SystemColor.menu);
textField_gcent.setColumns(10);
textField_far = new JTextField();
textField_far.setEnabled(false);
textField_far.setEditable(false);
textField_far.setColumns(10);
textField_far.setBackground(SystemColor.menu);
GroupLayout groupLayout = new GroupLayout(frmTemperatura.getContentPane());
groupLayout.setHorizontalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(74)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(lblMenu)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addComponent(temperatura, GroupLayout.PREFERRED_SIZE, 283, GroupLayout.PREFERRED_SIZE)
.addGroup(groupLayout.createSequentialGroup()
.addGap(11)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(lbltitulocentigrados)
.addComponent(textField_gcent, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED, 69, Short.MAX_VALUE)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(textField_far, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addGap(18)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 87, GroupLayout.PREFERRED_SIZE))
.addComponent(lblGradosFah, GroupLayout.PREFERRED_SIZE, 222, GroupLayout.PREFERRED_SIZE)))))
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(28)
.addComponent(lblMenu)
.addGap(55)
.addComponent(temperatura, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
.addGap(47)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lbltitulocentigrados)
.addComponent(lblGradosFah))
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(32)
.addComponent(panel, GroupLayout.PREFERRED_SIZE, 20, GroupLayout.PREFERRED_SIZE))
.addGroup(groupLayout.createSequentialGroup()
.addGap(18)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(textField_gcent, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(textField_far, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))
.addContainerGap(92, Short.MAX_VALUE))
);
frmTemperatura.getContentPane().setLayout(groupLayout);
}
}