Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

231
Visualizações
JFree Chart con datos de la base de datos MySQL en un JPanel

Estoy tratando de implementar un JFree Chart en mi programa, actualmente estoy desarrollando una aplicación Java Swing. Quiero mostrar el gráfico en un panel dentro de la aplicación. Entonces, la tabla de la que quiero extraer los datos para el gráfico es la siguiente:


 -----------------------
| estados_totales_diarios|
 -----------------------
| ID de referencia (PK) |
| Valor |
| Fecha |
 -----------------------

y el código que he usado para implementar el gráfico es:

 public void buidGraph(JPanel jp) { DefaultCategoryDataset dataset = createDataset(); JFreeChart chart = ChartFactory.createLineChart( "Daily Progress", "Date", // X-Axis Label "Number of Members", // Y-Axis Label dataset ); ChartPanel panel = new ChartPanel(chart); jp.add(panel); }

El código del conjunto de datos que pensé que funcionaría y que estoy un poco confundido por él:

 private DefaultCategoryDataset createDataset() { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); try { String query = "SELECT `Value`, `Date` FROM `daily_total_statements` ORDER BY `Date` ASC"; Connection c = MySQL_Database.getInstance().getConnection(); PreparedStatement ps = c.prepareStatement(query); ResultSet rs = ps.executeQuery(); String series2 = "Daily progress"; while (rs.next()) { dataset.addValue(rs.getInt(1), series2, rs.getString(2)); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Problem creating chart! " + e.getMessage()); } return dataset; }

Estoy usando una clase singleton para la base de datos como puede ver. El problema es que el gráfico no se muestra en absoluto, es solo un panel vacío. ¡Por favor, si pudieras ayudar! ¡Perdón por el mal formato y lenguaje!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Debido a que un ChartPanel es un JPanel , simplemente puede agregarlo a su marco, como se muestra a continuación. El diseño predeterminado del marco es BorderLayout y la restricción predeterminada es CENTER . Además,

  • Utilice uno de los enfoques que se ven aquí para establecer el tamaño inicial del gráfico.
  • Utilice un diseño adecuado para controlar el comportamiento de cambio de tamaño.
  • Considere usar JDBCXYDataset , ilustrado aquí

Grafico

 import java.awt.Dimension; import java.awt.EventQueue; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; public class GraphTest extends JFrame { public GraphTest() { initComponents(); } private void initComponents() { add(buildLineGraph()); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String args[]) { EventQueue.invokeLater(GraphTest::new); } public ChartPanel buildLineGraph() { DefaultCategoryDataset dataset = createLineGraphDataset(); JFreeChart chart = ChartFactory.createLineChart("Daily Progress", "Day", "Value", dataset, PlotOrientation.VERTICAL, true, true, false); return new ChartPanel(chart) { @Override public Dimension getPreferredSize() { return new Dimension(640, 480); } }; } private DefaultCategoryDataset createLineGraphDataset() { // TODO: use JDBCXYDataset DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1, "Result", "Mon"); dataset.addValue(5, "Result", "Tue"); dataset.addValue(7, "Result", "Wed"); return dataset; } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda